我已经在网上搜索了一个答案,并且无法将它们理解为我的代码。我还是javafx的新手,还有一般的编码。
我的控制器类" MainController.java"功能我的所有按钮,标签,文本字段等。我创建了一个登录按钮,将成功登录主场景。但是,由于主场景作为一个单独的窗口加载,旧的初始登录场景仍然存在,我想知道是否有一种从控制器类控制我的场景的简单方法。
这是我的控制器类代码:
// Login button method call
public void Login() throws Exception {
Thread.sleep(500); // login delay
if (userInput.getText().equals("user") && passInput.getText().equals("pass")){
// load main scene
Parent root1 = FXMLLoader.load(getClass().getResource("/application/Main.fxml"));
Scene scene1 = new Scene(root1);
Stage mainScene = new Stage();
scene1.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
mainScene.setScene(scene1);
mainScene.initStyle(StageStyle.UNDECORATED);
mainScene.show();
}else {
status = "Invalid credentials";
statusLabel.setText(status);
}
}
我不确定如何隐藏旧的初始场景(登录场景)。我试过了
loginScene.hide();
但我似乎无法将两者联系起来。我对此非常陌生,所以我将不胜感激。谢谢:D
答案 0 :(得分:0)
在主课程中创建
public static Scene mainLoginScene;
在Main方法中添加
mainLoginScene = loginScene;
在控制器类中,您现在可以
MainClass.mainLoginScene.hide();
我希望我可以帮助你,我的英语不完美,我是新来的。)