![](/img/trans.png)
[英]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.