2014-09-19 275 views
0

我有fxml和控制器類。在控制器類中,我有someAction()方法,在fxml中,我將#someAction設置爲一些Button的onAction。現在我想創建不是在fxml中的按鈕,而是從java代碼動態地創建按鈕button = new Button()。我仍然加載fxml,我仍然有這個控制器與someAction()方法。我如何將someAction()設置爲onAction作爲我的按鈕?從java代碼我發現只有setOnAction(EventHandler<ActionEvent> eh)。有沒有一種方法來指定類似fxml風格的onAction,只是告訴控制器類中的方法名?JavaFX動態添加按鈕

回答

2

的方法之一可以是:

private EventHandler<ActionEvent> yourHandler = new EventHandler<>() { 
    public void handle(ActionEvent event) { 
     // your logic 
    } 
}; 

然後

button.setOnAction(yourHandler); 

public void someAction(ActionEvent event) { 
    yourHandler.handle(null); 
} 

或者以相同的方式,定義業務邏輯方法並調用它以兩種不同的動作事件處理程序。

+0

第二種方法聽起來更實際:) – ItachiUchiha 2014-09-19 10:37:16

+0

@IchichiUchiha是的,你是對的。我只想在這裏顯示eventhandler的用法。 – 2014-09-19 11:04:07