2012-12-29 9 views
6

C'è un modo per passare parametri ai metodi OnAction nei file fxml? In alternativa, posso ottenere in qualche modo l'id: fx del componente che ha chiamato il metodo onAction?JavaFX passaggio fx: id al controller o parametro nel metodo fxml onAction

Ho diversi pulsanti che dovrebbero fare la stessa cosa, dire 5 pulsanti con IDS button1 - button5 che, se premuto, dovrebbe stampare il corrispondente numero di 1-5. Non voglio avere 5 metodi onAction identici a questa variabile.

Qualsiasi aiuto apprezzato,

risposta

11

chiamata solo un gestore, l'actionEvent.source è l'oggetto che ha originato l'evento.

Prova questo:

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 
     } 
    } 
} 

Oppure:

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

grazie, mi ha salvato un sacco di Ctrl + C, Ctrl + V – glasspill

+0

Hi HMarioD, puoi dare il codice exmaple per favore? Non capisco. –

+1

@DmitryNelepov Ero modificare la risposta con alcuni esempi, spero che questo aiuto. – HMarioD

Problemi correlati