你好,我正在制作一个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 id:1
用户控制器:用户ID为:0
用户控制器:用户控制器:1
用户控制器:这是什么?1
我想用正确的userId值设置标签,但是initialize中的值是0而不是id为的任何数字,在这种情况下它是1