2
因爲這個控件中沒有OnShowing事件(至少在Javafx 2.2中),並且沒有辦法訪問底層的菜單控件,所以我找不到在這裏填充動態菜單項的方法。如何檢測MenuButton何時在Javafx中打開它的菜單?
我嘗試使用OnAction事件,但它不會觸發。
我嘗試使用包含動態選項的MenuButton內的菜單的OnShowing事件,但也不會觸發。
必須有某種方式,但我想不出任何。
因爲這個控件中沒有OnShowing事件(至少在Javafx 2.2中),並且沒有辦法訪問底層的菜單控件,所以我找不到在這裏填充動態菜單項的方法。如何檢測MenuButton何時在Javafx中打開它的菜單?
我嘗試使用OnAction事件,但它不會觸發。
我嘗試使用包含動態選項的MenuButton內的菜單的OnShowing事件,但也不會觸發。
必須有某種方式,但我想不出任何。
上顯示可以通過這種方式添加動態菜單項:
@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();
}
是的,它的作品!非常感謝你。也許他們決定在將來更容易找到setOnShowing方法,但此解決方案目前運行良好。謝謝。 – betaman