2017-05-07 77 views
0

菜單項我有一個類型的播放列表的可觀察名單。動態地創建基於可觀察名單

我有一個下拉菜單(連接到MenuButton)與MenuItem列表中的每個項目(加上幾個默認項目我硬代碼不會改變)。

對於TableView,我能夠將數據鏈接到一個ObservableList,他們和表格中的行自動更新基於該列表的內容。

有沒有辦法做一個MenuButton和其MenuItem的名單是一回事嗎?

回答

1

我不確定是否有內置的支持,但無論哪種方式,您都可以通過編寫一個監聽器來爲基於ObservableList的任何元素編寫包裝。例如,

public class BoundMenuButton extends MenuButton { 

    ObservableList<MenuItem> items; 

    public BoundMenuButton(items) { 
     super(); // Not sure if needed 
     this.items = items; 

     // Listen for changes 
     items.addListener((ListChangeListener.Change<? extends MenuItem> change) -> { 
      updateItems(); 
     }); 
    } 

    public void updateItems() { 
     Platform.runLater(() -> { 
      // Do updates 
     }); 
    } 
} 

這只是非常基礎。您可以擴展該方法,使其與TableView的方法相同。 (getItems()setItems(),等等)。

P.S - 此代碼是未經測試,因爲我沒有獲得一個編譯器目前。

+0

酷,我要去給這個一杆。我會讓你知道它是怎麼回事,謝謝! – JoshuaD

+0

@JoshuaD沒有問題,讓我知道如果你需要任何更多的幫助:) – Chris