2013-08-18 3 views
2

이 컨트롤에는 최소한 Javafx 2.2 이상에서 OnShowing 이벤트가 없으므로 기본 메뉴 컨트롤에 액세스 할 수있는 방법이 없으므로 여기서 동적 메뉴 항목을 채울 방법이 없습니다.MenuButton이 Javafx에서 메뉴를 열 때 어떻게 감지 할 수 있습니까?

OnAction 이벤트를 사용해 보았지만 시작되지 않습니다.

동적 선택 항목이 포함되어 있지만 실행되지 않는 MenuButton 내부 메뉴의 OnShowing 이벤트를 사용해 보았습니다.

어떤 방법이 틀림 없지만 나는 전혀 생각할 수 없다.

답변

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(); 
} 
+0

예, 작동! 고맙습니다. 어쩌면 미래에 setOnShowing 메서드를 쉽게 찾을 수 있기로 결정했을지 모르지만이 솔루션은 현재 잘 작동합니다. 고맙습니다. – betaman

관련 문제