2014-06-30 66 views
0

我有一個MenuButton只包含CheckMenuItems。我的用戶通常會檢查幾個項目,如果他必須重新打開每個項目的菜單,他很快就會把鼠標扔到屏幕上。Javafx:禁用菜單(MenuButton)自動關閉

我選擇使用menubutton而不是combobox,因爲它似乎不可能將複選框放入組合框(https://community.oracle.com/thread/2598157)。

任何人有想法? 非常感謝, Léo

+1

你有沒有試過[ControlsFX CheckedComboBox](http://controlsfx.bitbucket.org/org/controlsfx/control/CheckComboBox.html)? – ItachiUchiha

+0

這是不可能的,因爲我正在使用java 7和controlsFX目標java 8(與java 7不兼容,我嘗試了並獲得了一個不錯的UnsupportedClassVersionError)。目前,我無法將我的項目切換到java 8。 –

回答

0

這爲我工作:

@FXML 
public void autoShow() { 

    checkmenuitem.setOnAction(new EventHandler<ActionEvent>() { 
     public void handle(ActionEvent e) { 
      e.consume(); 
    } 
}); 


} 

checkmenuitem是id。當它被點擊時,處理方法被執行。有關event.consume()方法的詳細說明,請參閱本:

What is the meaning of Event consumes in JavaFX

將上述方法在你的控制器類,然後從初始化方法在你的控制器類調用它:

@Override 
public void initialize(URL location, ResourceBundle resources) { 

    autoShow(); 

}