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

问题描述 投票:-1回答:1

这个问题在这里已有答案:

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

所以这是一个代码片段:logincontroller

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中的帐户变量。喜欢:

homecotroller

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

. .

java variables javafx initialization
1个回答
0
投票

你可以使用单身人士。

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

© www.soinside.com 2019 - 2024. All rights reserved.