2017-05-07 4 views
0

私はプレイリストタイプの観測リストを持っています。観測可能リストに基づいてメニューアイテムを動的に作成

リスト内の各項目(さらに、変更されないいくつかのデフォルト項目Iハードコード)につき、MenuItemのドロップダウンメニュー(MenuButtonに接続)があります。

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何の助けも必要ない場合は、probを教えてください:) – Chris

関連する問題