javafx Combox完成页面选择名称,后台得到名称对应id的操作。

ChoiceBox 可实现列表选择的事件, 如有一个动物列表
javafx Combox完成页面选择名称,后台得到名称对应id的操作。_第1张图片

在这里插入代码片

choiceBox可满足要求。可如果需要点击dog后台获取到dog的id值,choiceBox就有些力不从小。combox可以通过重写方法,来完成这个操作。

	@FXML
	private ComboBox> queryClass;
	// 存放queryClass列表的值
	private ObservableList> ComboBoxItems = FXCollections.observableArrayList();
/**
	 * 初始化queryClass
	 */
	public void initQueryClass() {
		if (ComboBoxItems != null)
			ComboBoxItems.clear();
		List classInfo = query.queryClassInfo();

		Map map = new HashMap<>();
		map.put("ID", "-1");
		map.put("Name", "请选择");
		ComboBoxItems.add(map);
		if (classInfo != null && classInfo.size() > 0) {
		Map maps 
			for (ClassInfo info : classInfo) {
				maps  = new HashMap<>();
				maps.put("ID", info.getClassId());
				maps.put("Name", info.getClassName());
				ComboBoxItems.add(maps);
			}
		}
		queryClass.setItems(ComboBoxItems);
		queryClass.converterProperty().set(new StringConverter>() {

			@Override
			public String toString(Map object) {
				return object.get("Name");
			}

			@Override
			public Map fromString(String string) {
				return null;
			}
		});
		queryClass.getSelectionModel().select(0);

	}

取值

String classId = queryClass.getValue().get("ID");

这样就可以获得一个前端展示班级姓名,后台取Id的操作了。

你可能感兴趣的:(javafx)