我正在学习JavaFX,我正在将我的应用程序从Swing重写为JavaFX。
现在我正面临这个问题。
在Swing中我从数据库中选择了数据,我将它们保存到ResultSet中,然后从ResultSet中将它们插入到LinkedHashMap中。
从LinkedHashMap我以相同的顺序将它们插入到ComboBox中。
同样的顺序很重要。
// Swing
private final LinkedHashMap<Integer,String> linkedHashMap = new LinkedHashMap<Integer,String>();
... // ResultSet
while(rs.next()){
linkedHashMap.put(rs.getInt(1), rs.getString(2));
}
... // ComboBox
Iterator it=linkedHashMap.values().iterator();
while(it.hasNext()){
String value=(String)it.next();
jComboBox.addItem(value);
}
...
在JavaFX中,我将LinkedHashMap重写为MapProperty,但我不知道如何以相同的顺序保存数据?插入到ComboBox后数据的顺序不一样。
// JavaFX
private final MapProperty<Integer, String> observableHashMap = new SimpleMapProperty<>(FXCollections.observableHashMap())
... // ResultSet
while(rs.next()){
observableHashMap.put(rs.getInt(1), rs.getString(2));
}
... // ComboBox
this.getComboBox.getItems().clear();
this.getComboBox().getItems().addAll( observableHashMap.values() );
...
如何以相同的顺序在MapProperty中保存数据?
是否有意义使用属性用于仅用于选择的数据?
答案 0 :(得分:0)
new SimpleMapProperty<>(FXCollections.observableMap(new LinkedHashMap<>()));