2017-09-24 6 views
0

満たされたとき、私は同じパッケージ(私はカバーされていることだ)にある新しいFXMLファイルを使用して新たなステージを作成するためのメソッドを持つクラスを作成する必要があります。私が問題を抱えているのは、前のステージを閉じるプロセスです。私はそれを行うための専用のメソッド(静的または必要に応じてそのクラスのインスタンスを作成する)を持つクラスを持っていたいと思います。FXMLプロジェクト - 新しいステージを作成する条件が

基本的に私は、ENが呼び出されたメソッドが必要になります。

  1. は、引数として渡されますFXMLファイルとの新たなステージを作成します。そのメソッドが呼び出されると
  2. 前段残りだけ一段(新しいもの)を残して閉じなければなりません。高度な点で

感謝。

+0

によって、ステージを得ることができるので、あなたの具体的なコーディングの問題は何ですか?あなたの試みを提供し、私たちはそれを解決するのを手伝うことができます。 – MinistryofChaps

+0

あなたは前のステージを閉じることにどんな問題がありますか?あなたは、あなたがそれをクローズする必要がある場合、右stage.hideを()、それを作成し、呼び出すときには、それへの参照を保持することができます! – tomorrow

+0

コードをチェックアウトする[ここ](https://github.com/sedj601/SimpleLoginFx)l – Sedrick

答えて

0

enter image description hereは、まずあなたが現在のステージを閉じる必要があり、あなたがあなたを求めている何をすべきか。あなたは、パラメータとして、あるいはシーンの任意の要素にアクセスするシーン(最初の1か閉じたいものを)渡す必要があることを行うために。

あなたが最初のシーンの任意の要素にアクセスすることで行いたい場合は

private void openNewStage(Scene curScene) throws IOException{ 
    Stage stage1 = (Stage) curScene.getWindow(); 
    stage1.close(); 
    Stage stage2 = new Stage(); 
    Parent root = FXMLLoader.load(getClass().getResource("/application/fxml2.fxml")); 
    Scene scene = new Scene(root,300,300); 
    scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm()); 
    stage2.setScene(scene); 
    stage2.setTitle("Seceond stage"); 
    stage2.show(); 
} 

を使用して...あなたがボタン1という名前のボタンを持っていると言うことをあなたがすることができるパラメータとしてシーンを渡したい場合は最初のFXMLファイル、あなたが

Stage stage1 = (Stage) button1.getScene().getWindow(); stage1.close();

関連する問題