Как мне вызвать метод с параметром ActionEvent в другом методе

Я пытаюсь заполнить очередь для приложения, которое создает теннисный турнир.

введите здесь описание изображения

Когда я нажимаю кнопку «Создать Torneo» (как видно на изображении), я создаю очередь в методе «crearTorneo». Когда я нажимаю кнопку «Añadir» (также видно на изображении), она берет информацию из нескольких текстовых полей и создает объект в методе «llenarCola», который возвращается с намерением заполнить очередь.

Вот мой метод 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;
}

и вот мой метод crearTorneo:

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

    jugador = llenarCola();

Понятно, что когда я вызываю метод llenarCola внутри crearTorneo, мне не хватает параметра ActionEvent, что приводит меня к моему вопросу: как мне вызвать метод с параметром ActionEvent в другом методе? Или, может быть, я подхожу к этому неправильно?

Я впервые использую JavaFX, поэтому, возможно, есть другой способ (хороший способ), о котором я не знаю. Мне еще нужно, чтобы метод llenarCola вызывался ТОЛЬКО при нажатии кнопки "Añadir". Я использую Scene Builder 2 и Netbeans 8.0.2.


person GFV450    schedule 15.11.2015    source источник
comment
Если вы не используете экземпляр event внутри метода, вы можете вызвать метод и передать null. Или вы можете создать экземпляр ActionEvent. Или вы можете делегировать свой метод ActionEvent другому методу, у которого нет параметра.   -  person khelwood    schedule 15.11.2015
comment
Этот вопрос похож на stackoverflow.com/questions/33129568/   -  person James_D    schedule 15.11.2015
comment
Но мне все же нужно, чтобы метод llenarCola вызывался только при нажатии кнопки Añadir. Если я поставлю нулевой параметр, разве он не будет вести себя по-другому? Кроме того, я не нахожу другой вопрос столь же актуальным.   -  person GFV450    schedule 15.11.2015
comment
Если вы не ссылаетесь на событие в своем методе, вы не заметите разницы, просто вызовите crearTornero(null)   -  person Petter Friberg    schedule 15.11.2015


Ответы (1)


Это в основном идентично элегантному способу обработки ввода с клавиатуры в JavaFX

Ты можешь сделать

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

а затем вы можете вызвать версию без аргументов:

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

    jugador = llenarCola();

    // ...
}
person James_D    schedule 16.11.2015
comment
большое спасибо :) я вижу ваши ответы на многих постах javafx - person minigeek; 15.02.2017