2

このコントロールには OnShowing イベントがなく (少なくとも Javafx 2.2 では)、基礎となるメニュー コントロールにアクセスする方法がないため、ここに動的メニュー項目を設定する方法が見つかりません。

OnAction イベントを使用してみましたが、発火しません。

動的な選択肢を含む MenuButton 内のメニューの OnShowing イベントを使用してみましたが、それも発生しません。

何か方法があるはずですが、思いつきません。

4

1 に答える 1

3

表示時に動的メニュー項目を追加するには、次の方法があります。

@Override
public void start(Stage stage) throws Exception {
    final MenuButton m = new MenuButton("Cities");
    m.getItems().addAll(new MenuItem("Moscow"), new MenuItem("Bishkek"), new MenuItem("Istanbul"));
    m.showingProperty().addListener(new ChangeListener<Boolean>() {
        @Override
        public void changed(ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) {
            if(newValue) {
                m.getItems().add(new MenuItem("new city item"));
            }
        }
    });

    StackPane stackPane = new StackPane();
    stackPane.getChildren().add(m);
    Scene scene = new Scene(stackPane);
    stage.setScene(scene);
    stage.show();
}
于 2013-08-18T21:17:58.413 に答える