[英]Create a modal javafx.stage.FileChooser inside a swing application
[英]JavaFx FileChooser without Stage
我正在學習JavaFx,我遇到了一個問題。 我試圖使用JavaFx中的FileChooser,就像我習慣使用來自Swing的JFileChooser的main()方法一樣。 但是我發現我需要一個Window對象。 我試過尋找一種解決方法,但我找不到。 我也嘗試過null(就像你在JFileChooser中那樣)和新的Stage(),所以這些都不在桌面上。 我試圖模仿JFileChooser.showOpenDialog()。 有沒有合理的方法讓它發揮作用?
main
方法不在FX應用程序線程上執行,因此您無法從中顯示FileChooser
。 (你不能在Swing中真正做到這一點,除非你使用的是SwingUtilities.invokeLater(...)
。)
在JavaFX中,啟動應用程序的責任在start()
方法中,該方法在FX Application Thread上執行。 (在許多運行時環境中,您甚至不需要JavaFX應用程序中的main
方法。)
只需從start方法顯示文件選擇器,您可以在其中訪問primaryStage
(或者如果您願意,可以只傳遞null
):
public class MyApp extends Application {
public void start(Stage primaryStage) {
FileChooser configFileChooser = new FileChooser();
File configFile = configFileChooser.showOpenDialog(primaryStage);
// ... parse file and create UI, etc...
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.