如何从其他类关闭窗口javafx

时间:2017-08-04 14:11:27

标签: java javafx

Sembako.java这个主类

public class Sembako extends Application {

    @Override
    public void start(Stage stage) throws Exception {
        Parent root = FXMLLoader.load(getClass().getResource("rootScene.fxml"));

        Scene scene = new Scene(root);

        stage.setScene(scene);
        stage.setTitle("Login");
        stage.setResizable(false);
        stage.show();
    }

rootSceneController.java

@FXML private void loginAction(ActionEvent event)抛出IOException {

for (indrian16.oulook.id.co.sembako.entity.Login l : listLogin) {

    if(username.getText().equals(l.getUsername())) {
        if(password.getText().equals(l.getPassword())) {
            Parent rootDashBoard = FXMLLoader.load(getClass().getResource("dashboard.fxml"));

            Stage stage = new Stage();
            Scene scene = new Scene(rootDashBoard);
            stage.setScene(scene);
            stage.setTitle("Sembako");
            stage.show();

            stage.close(); //how close Sembako scene :)

        } else {
            msgLogin.setText("Password Invalid");
        }
    } else {
        msgLogin.setText("Username Invalid");
    }

}

}

如何在rootSceneController.java中关闭窗口Sembako场景

抱歉,我的英文不好

2 个答案:

答案 0 :(得分:1)

我想你问的是如何关闭之前打开的窗口。假设这是包含username文本字段的窗口,您可以执行

username.getScene().getWindow().hide();

答案 1 :(得分:0)

有一个简单的方法,

Stage windows;

public void start(Stage primaryStage) throws Exception {
    windows = primaryStage;
}

然后在所需的类中传递舞台窗口并使用

windows.close();

这可以从其他类中关闭应用程序:)