javafxのCLIコンソールから、私が望むだけ多くのステージを作成したいと思っています。私は私がやった理由です、アプリケーションのインスタンスが1つしか存在しないことができることを知っている:JavaFX:プライマリステージの可視性と複数の独立したステージ
public class BaseApplication extends Application{
@Override
public void start(Stage primaryStage) throws Exception {
//we do nothing with this stage.
}
}
ステージのためのクラス:
public class SomeStage extends State(){
public SomeStage(){
...
show();
}
}
そして、このCLIに応じて実行されるコードは、コマンド:
Platform.runLater(()->{
SomeStage someStage=new SomeStage();
});
しかし、このコードを使用して、私はSomeStageのインスタンスを1つしか作成できません。 BaseApplicationでprimaryStage.show();
を実行すると、SomeStageのN個のインスタンスを作成できますが、primaryStageが表示されている場合のみ可能です。それを説明し、この依存関係を主要な段階から解決する方法は?
EDIT
私は、主ステージが表示されていないと私はPlatform.runLaterが呼び出されていない、その後SomeStageの2番目のインスタンスを作成する場合ことが分かりました。私は
System.out.println("Point 1");
Platform.runLater(()->{
System.out.println("Point 2");
SomeStage someStage=new SomeStage();
});
を意味すると私は、画面上でのみPoint 1
を参照してSomeStageのコンストラクタが呼び出されません。
"しかし、このコードを使用して、私は' SomeStage'のインスタンスを1つしか作成できません。 "ここで何を意味しますか? Platform.runLater(() - > SomeStage someStage = new SomeStage());を呼び出すたびに、 'SomeStage'の新しいインスタンスが作成されます。 –
@James_Dしてください、私の編集を参照してください。 –