Javafx如何关闭控制器类

时间:2017-03-06 11:40:51

标签: java javafx

我已经在网上搜索了一个答案,并且无法将它们理解为我的代码。我还是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

1 个答案:

答案 0 :(得分:0)

在主课程中创建

 public static Scene mainLoginScene;

在Main方法中添加

mainLoginScene = loginScene;

在控制器类中,您现在可以

MainClass.mainLoginScene.hide();

我希望我可以帮助你,我的英语不完美,我是新来的。)