0

尝试在 JavaFX 中沿窗口传递值时遇到了一些问题。假设从登录页面,用户成功登录,用户名将从登录页面传递到主页。我想要做的是将 userLogged 从主页传递到另一个页面。这是我在主页中的代码:

public String userLogged = "Desmond";

public void goProduct(ActionEvent event){
     try {
            Stage stage = new Stage();
            stage.setTitle("Shop Management");
            Pane myPane = null;
            myPane = FXMLLoader.load(getClass().getResource("retrieveProduct.fxml"));
            Scene scene = new Scene(myPane);
            stage.setScene(scene);     
            RetrieveProductUI rpUI = new RetrieveProductUI(userLogged);
            stage.show();
            //hide this current window (if this is whant you want
            ((Node) (event.getSource())).getScene().getWindow().hide();
        } catch (IOException e) {
            e.printStackTrace();
        }
}

然后在产品页面中,我放置了一个构造函数来获取 userLogged:

public String userLogged;
public RetrieveProductUI(String userLogged){
    this.userLogged = userLogged;
}

然后我使用标签显示它。我以Java Swing方式通过构造函数传递变量。但是,我这样做时遇到了InstantiationException错误。

有人知道如何解决这个问题吗?提前致谢。

4

1 回答 1

1

将其public String userLogged = "Desmond";变成一个private变量,然后在主窗口中创建一个公共 getter:

public String getUserLogged(){
 return userLogged;
}

然后,您可以在应用程序的另一个“页面”上调用此变量,方法是使用这样的主名称来调用它window.getUserLogged(),如果您想这样做的话。将用户名放入名为 infoLabel 的标签中。

infoLabel.setText(nameOfMainWindow.getUserLogged());

希望这可以帮助 :)

于 2013-06-26T08:42:57.680 回答