繁体   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