Mr *_*ner 2 java jfilechooser javafx stage filechooser
我在学习JavaFx的过程中,遇到了一个问题。我尝试使用 JavaFx 中的 FileChooser,就像我习惯在 main() 方法中使用 Swing 中的 JFileChooser 一样。但是我发现我需要一个 Window 对象。我尝试寻找解决方法,但没有找到。我还尝试过 null (就像您在 JFileChooser 中所做的那样)和 new Stage(),所以这些都不在讨论之列。我试图模仿 JFileChooser.showOpenDialog()。有什么合理的方法可以让它发挥作用吗?
该main方法不在 FX 应用程序线程上执行,因此您无法FileChooser从中显示 a。(在 Swing 中也不能真正做到这一点,除非您使用SwingUtilities.invokeLater(...)。)
在 JavaFX 中,启动应用程序的责任在方法中start(),该方法在 FX 应用程序线程上执行。(在许多运行时环境中,您甚至不需要mainJavaFX 应用程序中的方法。)
只需从启动方法中显示文件选择器,您可以在其中访问(或者如果您愿意,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);
}
}
Run Code Online (Sandbox Code Playgroud)