У меня есть проект, в котором у меня есть два разных контроллера adminUserList и editStaffController, adminUserStaff передает строку в editStaffController.
public void openStaffEdit(ActionEvent actionEvent, String form, boolean cW){
try {
FXMLLoader loader = new FXMLLoader(getClass().getResource("/home/editStaff.fxml"));
Parent root = (Parent) loader.load();
editStaffController eS = loader.getController();
eS.setUsername(itemname);
Stage stage = new Stage();
stage.setScene(new Scene(root));
stage.show();
stage.show();
// Hide this current window (if this is what you want)
if(cW == true){
((Node)(actionEvent.getSource())).getScene().getWindow().hide();
}
}
catch (IOException e) {
e.printStackTrace();
}
}
, а когда получает строку, ее набор в метке и в поле
public void setUsername(String editUsername){
username_lb.setText(editUsername);
username_field.setText(editUsername);
}
и он правильно отображается в программе, когда я его запускаю.
Однако, когда я пытаюсь инициализировать данные, они возвращаются пустыми, даже если программа показывает их в поле.
@Override
public void initialize(URL location, ResourceBundle resources) {
position_Box.getItems().addAll("Franchise", "Receptionist" , "Mechanic", "Foreperson");
info_txt.setVisible(false);
System.out.println(username_field.getText());
setFields();
}
Есть ли способ исправить это?Есть ли лучший способ передать данные из adminUserListController в editStaffController и сохранить их в переменной?
Заранее спасибо.Если у вас есть какие-либо вопросы по поводу кода, не стесняйтесь спрашивать.