У меня есть простой проект JavaFx с двумя сценами, когда я пытаюсь изменить значение TextField во втором представлении с первого контроллера, он не обновляется sh.
Чтобы загрузить второй контроллер из сначала я использовал этот код:
@Override
public void initialize(URL url, ResourceBundle rb) {
wrk = Worker.getInstance();
wrk.deserializeUsers("./users.object");
FXMLLoader fxmlLoader = new FXMLLoader();
try {
GridPane p = fxmlLoader.load(getClass().getResource("/app/presentation/TextToPixelVIew.fxml").openStream());
ctrl = (TextToPixelCtrl) fxmlLoader.getController();
} catch (IOException ex) {
Logger.getLogger(MainCtrl.class.getName()).log(Level.SEVERE, null, ex);
}
}
И теперь я могу вызвать метод для изменения значения TextField во втором представлении: ctrl.loginSuccesfull ("C: // test")
Это метод для изменения значения TextField во втором контроллере:
public void loginSuccesfull(String path) {
txtFolder.setText(path);
System.out.println(txtFolder.getText());
}
Так что теперь, когда я вызываю метод loginSuccesfull, текст в поле не меняется, я знаю, что мой textField работает правильно, потому что я могу установить для него значение в методе initialize.
Я попытался напечатать значение TextField в методе loginSuccesfull, и значение фактически является значением, которое я только что установил перед строкой (txtFolde .setText (path))
Так что проблема в том, что мое значение textField не обновляется, когда я вызываю его из другого класса (MainCtrl)