Я не могу задать текст текстового поля. Ошибка отсутствует, но текстовое поле по-прежнему пуст. Остальная часть программы работает, метод вызывается, а System.out.println (...) печатает правильный текст. Таким образом, проблема заключается в том, что текст текстового поля не может быть установлен. Даже если я просто напишу textField.setText («0»); текстовое поле по-прежнему пуст. Когда я устанавливаю текст для текстового поля под public void initialize (...), он также работает. Так почему же он не работает в setCurrentInfo?JavaFX - setText() не работает
@FXML
private TextField textField;
private Info currentInfo;
@Override
public void initialize(URL url, ResourceBundle rb) {
}
public void setCurrentInfo(Info currentInfo) {
textField.setText(currentInfo.getpw1());
System.out.println(currentInfo.getpw1());
this.currentInfo = currentInfo;
}
Часть контроллера, где setCurrentInfo называется:
@FXML
private void handleBtn1(ActionEvent event) throws Exception{
Info info = new Info(textFieldA.getText(), textFieldB.getText());
FXMLLoader loader = new FXMLLoader();
loader.setLocation(getClass().getResource("FXMLPassword.fxml"));
loader.load();
Stage stage;
Parent root;
if(event.getSource()==btn1){
//get reference to the button's stage
stage=(Stage) btn1.getScene().getWindow();
//load up OTHER FXML document
root = FXMLLoader.load(getClass().getResource("FXMLPassword.fxml"));
}
else{
stage=(Stage) btn1.getScene().getWindow();
root = FXMLLoader.load(getClass().getResource("FXMLDocument.fxml"));
}
//create a new scene with root and set the stage
Scene scene = new Scene(root);
stage.setScene(scene);
stage.show();
FXMLPasswordController passwordController = loader.getController();
passwordController.setCurrentInfo(info);
}
Где вы звоните 'setCurrentInfo (...)' от? Можете ли вы включить код, в котором вы его вызываете в вопросе? –
с другого контроллера. Но его определенно называли иначе, что Println не напечатал правильный текст. – Nik
Вы называете это экземпляром этого контроллера, созданного «FXMLLoader»? Это действительно помогло бы диагностировать проблему, если бы вы [отредактировали] вопрос и включили код, вызывающий метод, в том числе, как вы получите ссылку на контроллер. –