gpt4 book ai didi

没有阶段的JavaFx FileChooser

转载 作者:行者123 更新时间:2023-11-29 04:46:14 25 4
gpt4 key购买 nike

我在学习JavaFx的过程中,遇到了一个问题。我正在尝试使用 JavaFx 中的 FileChooser,就像我习惯于在 main() 方法中使用 Swing 中的 JFileChooser 一样。但是我发现我需要一个 Window 对象。我试过寻找解决方法,但没有找到。我还尝试过 null(就像您在 JFileChooser 中所做的那样)和 new 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);
}
}

关于没有阶段的JavaFx FileChooser,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37012911/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com