Здравствуйте, я делаю программу 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;
}
и результаты, которые я получаю,
Контроллер: имя пользователя: идентификатор биллюсера: 1
Контроллер пользователя: идентификатор пользователя: 0
Пользовательский контроллер: пользовательский контроллер: 1
Пользовательский контроллер: что это? 1
Я хочу установить метку с правильным значением userId, но значение в инициализации равно 0 вместо любого числа, где находится идентификатор, в данном случае это было 1
о .. да, я не думаю, почему я не подумал об этом .. спасибо!




Задайте текст метки в методе
setUserId(...)...