Связь между двумя контроллерами - PullRequest
0 голосов
/ 10 декабря 2018

У меня есть два этапа с именами основной и второй. На каждом этапе есть кнопка и текстовое поле. Что я хочу сделать, это то, когда я нажимаю кнопку на основном этапе, отображается второй этап и когда я нажимаю кнопку на этапево-вторых, он получает текст из текстового поля на втором этапе и помещает текст в текстовое поле на первом этапе.Прости мой плохой английский. Ты узнаешь его после прочтения моего кода.

//PrimaryController
public class PrimaryController  {
@FXML
private TextField name;

@FXML
private void handleBtnAction(){
    FXMLLoader loader = new FXMLLoader();
    loader.setLocation(getClass().getResource("second.fxml"));
    try {
        loader.load();
    } catch (IOException e) {
        e.printStackTrace();
    }

    Stage stage = new Stage();
    stage.setScene(new Scene(loader.getRoot()));
    stage.showAndWait();
}

public void setText(String text){
    System.out.println("Setting text");
    name.setText(text);
   }
}

Это второй контроллер

public class SecondController {
@FXML
private TextField name;

@FXML
private void handleBtn(MouseEvent event){
    FXMLLoader loader = new FXMLLoader();
    loader.setLocation(getClass().getResource("primary.fxml"));
    try {
        loader.load();
    } catch (IOException e) {
        e.printStackTrace();
    }
    PrimaryController controller = loader.getController();
    controller.setText(name.getText());
    }
}

В результате, когда я нажимаю кнопку на втором этапе "Настройка текста "будет напечатана в консоли, но текстовое поле в основном этапе не будет установлено.Итак, как я могу заставить его работать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...