簡體   English   中英

沒有Stage的JavaFx FileChooser

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM