初始化后在javafx中的控制器之间传递变量

时间:2018-09-12 07:46:05

标签: java variables javafx initialization

如何在两个可初始化的控制器之间传递变量?登录后,用户名在第二页中为null,因为它已经初始化(我正在使用框架)。初始化后可以运行一种方法来加载变量吗?

因此,这是一个代码段: 登录控制器

public static String myusername;
public static String myaccount; 

@FXML
private JFXTextField username;

@FXML
public void makeLogin(ActionEvent event) {      
Document query = new Document();
query.put("userName", username.getText());

FindIterable<Document> docs = userCollection.find(query);

if(docs != null){
    if(detailsmatch(username, password)){

        String theaccount = (String) doc.get("account");

        USERSingleton.getInstance().setusername(username.getText());                                
        USERSingleton.getInstance().setaccount(theaccount);

        myusername = USERSingleton.getInstance().getusername();
        myaccount = USERSingleton.getInstance().getaccount();

        myScreenPane.setHomeScreen("home");

    }
}

@Override
public void initialize(URL url, ResourceBundle rb) {     

}  

@Override
public void setScreenPane(screenPane screenPage) {
    myScreenPane = screenPage;
}
}

因此,我想从logincontroller获取homecontroller中的account变量。喜欢:

homecotroller

System.out.println(logincontroller.myaccount);
System.out.println(USERSingleton.getInstance().getaccount());

1 个答案:

答案 0 :(得分:0)

您可以为此使用单例。

创建一个单例并将所有变量通过设置器传递给实例。然后,您可以从其他页面访问该对象。