Здравствуйте, я делаю javafx программу и столкнулся с проблемой:
я передаю значение переменной здесь в другом контроллере с этим
buttonSignIn.setOnAction(e -> {
try {
User user = new User();
user.setUsername(userName.getText().trim());
user.setPassword(password.getText().trim());
if (DB.validateLogin(user)){
// change scene if this is true
userId = DB.getUserId(user);
System.out.println("Controller: users name: "+user.getUsername()+"users id: "+ userId);
buttonSignIn.getScene().getWindow().hide();
FXMLLoader loader = new FXMLLoader();
loader.setLocation(getClass().getResource("/sample/view/user.fxml"));
loader.load();
Parent root = loader.getRoot();
Stage stage = new Stage();
stage.setScene(new Scene(root));
UserController userController = loader.getController();
userController.setUserId(userId);
stage.showAndWait();
}else{
System.out.println("please type your username and password");
}
}catch (Exception ex){
System.out.println("problem ..."+ ex);
}
});
я передаю его в "userController"
код в userController:
в методе инициализации у меня есть
usersLabel.setText(" users id is : "+getUserId());
System.out.println("User controller: users id is : "+ getUserId());
и за пределами инициализации у меня есть геттеры и сеттеры
public void setUserId(int id) {
this.userId = id;
System.out.println("User controller: users controller : "+userId);
System.out.println("User controller: what is this?"+ getUserId());
}
public int getUserId(){
return userId;
}
и результаты, которые я получаю
Контроллер: имя пользователя: идентификатор billusers: 1
Контроллер пользователя: идентификатор пользователя: 0
Пользовательский контроллер: пользовательский контроллер: 1
Пользовательский контроллер: что это? 1
Я хочу установить метку с правильным значением userId, но значение в initialize равно 0, а не любому числу, в котором находится id, в данном случае это было 1