2015-12-02 3 views
0

Я только начинаю изучать JAVAFX, и теперь у меня возникла проблема. У меня есть экран входа в систему, и после того, как я нажал логин, появилось диалоговое окно, и проблема в том, что я не знаю, как удалить экран входа в систему после появления диалога. Пожалуйста, помогите мне. Это мой кодУстранение предыдущей сцены после появления новой сцены

Main.java (содержит Войти экран)

public class Main extends Application { 

    @Override 
    public void start(Stage primaryStage) throws Exception{ 
     Parent root = FXMLLoader.load(getClass().getResource("../view/LoginScreen.fxml")); 
     primaryStage.setTitle("Weltes Mart O2 Tank Module"); 
     primaryStage.setScene(new Scene(root)); 
     primaryStage.show(); 
    } 

    public static void main(String[] args) { 
     launch(args); 
    } 
} 

LoginController.java (показывать диалоговое окно)

public class LoginController { 

    @FXML private Text loginStatusMessage; 
    @FXML private Button btnLogin; 

    @FXML public void handleLoginButton(ActionEvent event){ 
     System.out.println("BUTTON PRESSED"); 

     try { 
      Parent root = FXMLLoader.load(getClass().getResource("../view/LoginSuccessDialog.fxml")); 
      Stage primaryStage = new Stage(); 
      primaryStage.setScene(new Scene(root)); 
      primaryStage.show(); 
     } catch (Exception e) { 
      e.printStackTrace(); 
      return; 
     } 

    } 
} 

ответ

1

Вы можете использовать любой Node в Scene, чтобы получить ссылку на эту сцену. Вы можете использовать Scene, чтобы получить Window, который содержит его. Вы можете закрыть это окно.

Предполагая Node поля фактически впрыскивается загрузчиком, вы можете закрыть Stage используя этот код:

btnLogin.getScene().getWindow().hide(); 
+0

Только примечание здесь: Либо убедитесь, что сделать это * после * Вы показываете новое окно, или вызовите ['Platform.setImplicitExit (false);'] (http://docs.oracle.com/javase/8/javafx/api/javafx/application/Platform.html#setImplicitExit-boolean-) где-то в вашем приложении , –

Смежные вопросы