LinkedHashMap和MapProperty

时间:2016-03-04 16:48:20

标签: javafx javafx-2

我正在学习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中保存数据?

是否有意义使用属性用于仅用于选择的数据?

1 个答案:

答案 0 :(得分:0)

new SimpleMapProperty<>(FXCollections.observableMap(new LinkedHashMap<>()));