我正在使用一個單例作爲Employee對象的假數據庫。使用ObservableMap填充和同步組合框?
在這個僞數據庫中,有一個ObservableMap,它使用Employees的社會安全號碼作爲唯一鍵。
我有組合框,TableViews和列表視圖我想這個數據庫來填充,以及確保數據庫中的任何更改將在這些TableViews,列表視圖反映等
組合框,電視,而LV需要一個ObservableArraylist,但是,我怎麼才能從HashMap中獲取呢?我可以通過迭代器手動提取值並將它們添加到新的ObservableArraylist中,但是如果在數據庫中進行了任何更改,我將不得不手動調整ObservableArraylist。我寧願讓手動同步。
任何想法,我應該做什麼?
編輯:
顯然,這個工作(我必須非常具體也不清楚,爲什麼我必須使用通配符,而不是僅僅作爲一個泛型參數
employeeMap
.addListener((
MapChangeListener.Change<? extends Integer, ? extends Employee> listener) -> {
System.out.println("CHANGED");
});
首先ComboBoxes,TableViews和ListViews需要ObservableLists,而不是ObservableArrayLists。而對於你的問題:如果你看看ObservableMapWrapper#keySet的來源,你可以看到它返回一個ObservableKeySet。不幸的是ObservableKeySet是一個私有類,它不實現ObservableSet。 – Vertex