我已经从我的数据库创建了一个HashMap。现在我希望将HashMap显示给名为cmbCourses的ComboBox。我的代码的问题是它被读取为String而不是ObservableList,我如何迭代值以匹配ObservableList?
这是我的代码:
public void populateCourse() {
QueryCombo qc = new QueryCombo();
HashMap<String, Integer> map = qc.hashMap();
for (String s : map.keySet()) {
cmbCourse.setItems(s);
}
}
答案 0 :(得分:0)
您的循环仅获得 Hashmap 键,我认为您需要一个键映射对象来设置cmbCourse
,
你可以这样做,
for (String s : map.keySet()) {
cmbCourse.addItem(map.get(s));
}
但这不是迭代。
这是如何进行正确的迭代
HashMap<String, Integer> map = qc.hashMap();
Iterator it = map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry pair = (Map.Entry)it.next();
System.out.println(pair.getKey()); // this is your key
System.out.println(pair.getValue()); // // this is your key mapped value
it.remove(); // avoids a ConcurrentModificationException
}
答案 1 :(得分:0)
您可以自己创建ObservableList<String>
ObservableList<String> items = FXCollections.observableArrayList(items.keySet());
cmbCourse.setItems(items);
或只是填写ComboBox
cmbCourse.getItems().setAll(map.keySet());
我假设您希望列表包含密钥btw。