[英]JavaFX: primary stage visibility and multiple independent stages
我想在javafx的CLI控制台中創建任意數量的階段,並且它們彼此獨立。 我知道只能有一個Application實例,這就是我這樣做的原因:
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的一個實例。 如果在BaseApplication中,我執行primaryStage.show();
那么我可以創建N個SomeStage實例,但是僅當primaryStage可見時。 如何從初級階段解釋並解決這種依賴性?
編輯
我發現,當主階段不可見並且我想創建SomeStage的第二個實例時,不會調用Platform.runLater。 我的意思是
System.out.println("Point 1");
Platform.runLater(()->{
System.out.println("Point 2");
SomeStage someStage=new SomeStage();
});
而且我在屏幕上只看到Point 1
,而沒有調用SomeStage的構造函數。
您尚未發布完整的示例,因此很難確定正在發生的事情,但是我懷疑當start()
方法退出時JavaFX工具包正在關閉。 因此,沒有正在運行的FX應用程序線程可以執行您在Platform.runLater()
提供的可運行對象。 嘗試致電
Platform.setImplicitExit(false);
在start()
方法中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.