提问者:小点点

如何在JavaFX中解析两个阶段之间的数据?


我有一个登录阶段,然后主页阶段,有许多行动,我想为每个用户做的,所以我想要当前用户的用户ID。我如何从登录阶段到主页阶段解析Id或用户名?注意,这里连接了一个公共数据库,当用户输入他的用户名和密码时,系统将检查数据是否真实并存在于数据库中。这是我检查输入数据后的登录阶段控制器:

Stage HomeScreen = new Stage();
Parent root=null;

                        try {

root=FXMLLoader.load(getClass().getResource("Home.fxml"));

                        }
                        catch (IOException ex) {

Logger.getLogger(LoginScreen.class.getName()).log(Level.SEVERE, null, ex);
                        }
                        Stage current = 
(Stage)username.getScene().getWindow();
                        Scene scene = new Scene(root);
                        HomeScreen.setScene(scene);
                        HomeScreen.initStyle(StageStyle.DECORATED);
                        HomeScreen.setTitle("Network Automation");
                        current.hide();
                        HomeScreen.show();

共1个答案

匿名用户

我假设这可以通过多种方式完成。您可以在静态变量中设置用户详细信息以跨应用程序访问。或者更合理的方法是将详细信息传递给主页控制器。

假设Home.fxml的控制器是HomeController.java,其中有一个userId的setter/getter。那么您的代码需要更改如下。

FXMLLoader myLoader = new FXMLLoader(getClass().getResource("Home.fxml"));
Parent root = myLoader.load();
HomeController homeController = (HomeController) myLoader.getController();
homeController.setUserId(userId); // set the userId in the controller...
// do the other stuff as usual...