2012-12-29 8 views
6

Czy istnieje sposób przekazywania parametrów do metod onAction w plikach fxml? Alternatywnie, czy mogę w jakiś sposób uzyskać fx: id komponentu, który wywołał metodę onAction?javafx pass fx: id do kontrolera lub parametru w metodzie fxml onAction

Mam kilka przycisków, które powinny zrobić to samo, powiedzmy 5 przycisków z ids button1 - button5, które po naciśnięciu powinny wypisać odpowiedni numer 1-5. Nie chcę mieć 5 metod onAction, które są identyczne do tej zmiennej.

Każda pomoc mile widziane,

Odpowiedz

11

połączeń tylko jeden obsługi The actionEvent.source jest obiektem, który pochodzi zdarzenie.

Spróbuj tego:

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

czyli

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

dzięki uratował mi wiele Ctrl + C, Ctrl + V – glasspill

+0

Hi HMarioD można podać kod exmaple proszę? Nie dostaję. –

+1

@DmitryNelepov Byłem edytować odpowiedź z przykładami, mam nadzieję, że to pomoże. – HMarioD

Powiązane problemy