2012-12-29 34 views
6

是否有任何方法將參數傳遞給fxml文件中的onAction方法?或者,我可以以某種方式獲得調用onAction方法的組件的fx:id?javafx將fx:id傳遞給fxml onAction方法中的控制器或參數

我有幾個按鈕應該做同樣的事情,比如5個帶有按鈕1 - 按鈕5的按鈕,當按下按鈕時,應該打印相應的數字1-5。我不想有5個與這個變量相同的onAction方法。

讚賞任何幫助,

回答

11

呼叫只是一個處理程序,該actionEvent.source是發起事件的對象。

試試這個:

myButton1.setOnAction(new MyButtonHandler()); 
myButton2.setOnAction(new MyButtonHandler()); 

private class MyButtonHandler implements EventHandler<ActionEvent>{ 
    @Override 
    public void handle(ActionEvent evt) { 
     if (evt.getSource().equals(myButton1)) { 
      //do something 
     } else if (evt.getSource().equals(myButton2)) { 
      //do something 
     } 
    } 
} 

或者:

myButton1.addEventHandler(ActionEvent.ACTION, new MyButtonHandler()); 
myButton2.addEventHandler(MouseEvent.CLICKED, new MyButtonHandler()); 

private class MyButtonHandler implements EventHandler<Event>{ 
    @Override 
    public void handle(Event evt) { 
     if (evt.getSource().equals(myButton1)) { 
      //do something 
     } else if (evt.getSource().equals(myButton2)) { 
      //do something 
     } 
    } 
} 
+0

謝謝你,救了我很多按Ctrl + C的,按Ctrl + V – glasspill

+0

嗨HMarioD,你可以給代碼〔實施例嗎?我沒有得到。 –

+1

@DmitryNelepov我用一些例子編輯了答案,希望這對你有所幫助。 – HMarioD

相關問題