2017-03-06 5 views
1

私はウェブを検索して答えを得ましたが、実際に自分のコードにそれらの意味を理解することはできません。私はまだjavafxで新しく、一般的にコーディングしています。Javafxコントローラークラスからシーンを閉じる方法

私のコントローラクラス "MainController.java"は、すべて私のボタン、ラベル、テキストフィールドなどを機能させます。ログインに成功するとMainシーンをロードするログインボタンを作成しました。しかし、メインシーンが別のウィンドウとしてロードされるので、古い初期ログインシーンがまだ残っていて、コントローラクラスからシーンを簡単に制御する方法があるのだろうかと思っていました。ここで

はコードの私のコントローラクラスのビットです:

// 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); 

     } 
    } 

私は私の古い初期のシーン(ログインシーン)を非表示にする方法がわかりませんよ。私はしようとしました

私は2つをリンクするように見えることはできません。私はこれで非常に新しいので、助けていただければ幸いです。ありがとう:D

答えて

0

public static Scene mainLoginScene; 

、メインメソッドは、あなたが今

MainClass.mainLoginScene.hide(); 

私は私ができる望むことができるコントローラクラスで

mainLoginScene = loginScene; 

を追加するにはメインクラスで作成します。助けてください、私の英語は完璧ではなく、私はここに新しいです:)

+0

ありがとう、これは私のために働いた。私はこれをすることを完全に忘れてしまった。 – Bruce219

関連する問題