ChoiceBox 可实现列表选择的事件, 如有一个动物列表
在这里插入代码片
choiceBox可满足要求。可如果需要点击dog后台获取到dog的id值,choiceBox就有些力不从小。combox可以通过重写方法,来完成这个操作。
@FXML
private ComboBox<Map<String, String>> queryClass;
// 存放queryClass列表的值
private ObservableList<Map<String, String>> ComboBoxItems = FXCollections.observableArrayList();
/**
* 初始化queryClass
*/
public void initQueryClass() {
if (ComboBoxItems != null)
ComboBoxItems.clear();
List<ClassInfo> classInfo = query.queryClassInfo();
Map<String, String> map = new HashMap<>();
map.put("ID", "-1");
map.put("Name", "请选择");
ComboBoxItems.add(map);
if (classInfo != null && classInfo.size() > 0) {
Map<String, String> 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<Map<String, String>>() {
@Override
public String toString(Map<String, String> object) {
return object.get("Name");
}
@Override
public Map<String, String> fromString(String string) {
return null;
}
});
queryClass.getSelectionModel().select(0);
}
取值
String classId = queryClass.getValue().get("ID");
这样就可以获得一个前端展示班级姓名,后台取Id的操作了。