0
メニューを展開する前に、毎回メニューのサブアイテムを更新したいと考えています。 これは私が試したものです:JavaFX:毎回表示されるメニューのサブメニューを更新する
@FXML javafx.scene.control.Menu menu;
public void initiallize(){
// ...
this.menu.setOnAction((event) -> {
this.menu.getItems().clear();
this.menu.getItems().add(new MenuItem("Hello"));
this.menu.getItems().add(new MenuItem("World"));
this.menu.getItems().add(new MenuItem("!!!!!"));
});
}
それは近いが正しくありません。更新はアイテムをクリックした後にのみ発生します。メニューは展開される可能性がありますが、古い値です。 setOnAction()
の代わりにsetOnShown()
を使用した試行は、それが表示されている時点で更新が遅すぎるため、機能しませんでした。
修正方法
編集1:
これは動作するようです:
this.menu.getParentMenu().setOnShowing((event) -> {
this.menu.getItems().clear();
this.menu.getItems().add(new MenuItem("Hello"));
this.menu.getItems().add(new MenuItem("World"));
this.menu.getItems().add(new MenuItem("!!!!!"));
});
は、これが最良の方法ですか(/ ParentMenuにアクセスOワット)より良い解決策があるのですか?