2015-11-15 1 views
0

Je suis en train de remplir une file d'attente pour une application qui crée un tournoi de tennisComment appeler une méthode avec un paramètre ActionEvent sur une autre méthode

enter image description here

Lorsque je clique sur le bouton « Crear Torneo » (comme vu dans l'image), je crée la file d'attente dans la méthode "crearTorneo". Quand j'appuie sur le bouton "Añadir" (également vu dans l'image), il prend l'information dans plusieurs TextFields et crée un objet dans la méthode "llenarCola", qui est retourné avec l'intention de remplir la file d'attente.

Maintenant, voici ma méthode llenarCola:

@FXML 
private NodoJugadores llenarCola(ActionEvent event) 
{ 
    int cedula = Integer.parseInt(textCedula.getText()); 
    int edad = Integer.parseInt(textEdad.getText()); 
    NodoJugadores jugador = new NodoJugadores(textNombre.getText(), cedula, textSexo.getText(), edad, textEquipo.getText(), 0); 

    return jugador; 
} 

et voici ma méthode de crearTorneo:

@FXML 
private void crearTorneo(ActionEvent event) 
{ 
    NodoJugadores jugador; 
    ColaJugadores cola = new ColaJugadores(); 

    jugador = llenarCola(); 

Il est clair que, quand je l'appelle la méthode llenarCola dans crearTorneo, je manque le ActionEvent paramètre, ce qui m'amène à ma question: Comment appeler une méthode avec un paramètre ActionEvent sur une autre méthode? Ou peut-être que j'aborde ça de la mauvaise façon?

C'est la première fois que j'utilise JavaFX, alors il y a peut-être un autre moyen (un bon moyen) que je ne connais pas. J'ai encore besoin que la méthode llenarCola soit appelée SEULEMENT quand le bouton "Añadir" est pressé. J'utilise Scene Builder 2 et Netbeans 8.0.2.

+2

Si vous n'êtes pas en utilisant l'événement ' 'instance dans la méthode, vous pouvez appeler la méthode et passer' null'. Ou vous pouvez instancier un 'ActionEvent'. Ou vous pouvez déléguer votre méthode 'ActionEvent' à une autre méthode qui n'a pas de paramètre. – khelwood

+2

Cette question est similaire à http://stackoverflow.com/questions/33129568/elegant-way-to-handle-keyboard-input-in-javafx –

+0

Mais j'ai encore besoin que la méthode llenarCola soit appelée seulement quand le bouton "Añadir "est pressé. Si je mets un paramètre nul, ne se comporterait-il pas différemment? En outre, je ne trouve pas l'autre question tout à fait pertinente. – GFV450

Répondre

1

Ceci est essentiellement identique à Elegant way to handle Keyboard Input in JavaFX

Vous pouvez faire

@FXML 
private void llenarCola(ActionEvent event) { 
    llenarCola() ; 
} 

private NodoJugadores llenarCola() { 
    int cedula = Integer.parseInt(textCedula.getText()); 
    int edad = Integer.parseInt(textEdad.getText()); 
    NodoJugadores jugador = new NodoJugadores(textNombre.getText(), cedula, textSexo.getText(), edad, textEquipo.getText(), 0); 

    return jugador; 
} 

et vous pouvez invoquer la non-arg Version:

@FXML 
private void crearTorneo(ActionEvent event){ 
    NodoJugadores jugador; 
    ColaJugadores cola = new ColaJugadores(); 

    jugador = llenarCola(); 

    // ... 
} 
+0

merci beaucoup :) Je vois vos réponses sur de nombreux posts javafx – minigeek