我现在在使用 JavaFX 时遇到了一个小问题。我试图在我的代码中创建一个文件选择,在那里我可以指向一个文件夹而不是一个文件。目前我没有解决方案。你知道一种解决方法(除了使用 swing 中的 JFileChooser)吗?
非常感谢您提前回答
编辑:我现在已经得到了答案,试图对其进行测试,但我忘了提及 JavaFX 的版本。这是几天前发布的最新 2.0.3 稳定版(但最初的非 beta 2.0 和 2.0.1 也有这个问题)
我现在在使用 JavaFX 时遇到了一个小问题。我试图在我的代码中创建一个文件选择,在那里我可以指向一个文件夹而不是一个文件。目前我没有解决方案。你知道一种解决方法(除了使用 swing 中的 JFileChooser)吗?
非常感谢您提前回答
编辑:我现在已经得到了答案,试图对其进行测试,但我忘了提及 JavaFX 的版本。这是几天前发布的最新 2.0.3 稳定版(但最初的非 beta 2.0 和 2.0.1 也有这个问题)
作为2.1 版本的一部分,将 DirectoryChooser 添加到 JavaFX 。用法是:
DirectoryChooser chooser = new DirectoryChooser();
chooser.setTitle("JavaFX Projects");
File defaultDirectory = new File("c:/dev/javafx");
chooser.setInitialDirectory(defaultDirectory);
File selectedDirectory = chooser.showDialog(primaryStage);
问题跟踪器提到了 2.0GA 版本的解决方法:“访问私有 Oracle API Glass 方法” CommonDialogs.showFolderChooser
。
与 Swing 中 JFileChooser 用于选择文件夹和单个文件不同,在 javafx 中,有用于选择单个文件的 FileChooser 类和用于选择目录的 DirectoryChooser 类
DirectoryChooser directoryChooser = new DirectoryChooser();
directoryChooser.setTitle("Open Resource File");
directoryChooser.getExtensionFilters().addAll(
new ExtensionFilter("Text Files", "*.txt"),
new ExtensionFilter("Image Files", "*.png", "*.jpg", "*.gif"),
new ExtensionFilter("Audio Files", "*.wav", "*.mp3", "*.aac"),
new ExtensionFilter("All Files", "*.*"));
File selectedFile = directoryChooser.showDialog(mainStage);
if (selectedFile != null) {
mainStage.display(selectedFile);
}
是目录选择器的示例。
FileChooser fileChooser = new FileChooser();
fileChooser.setTitle("Open Folder");
fileChooser.showDialog(stage);
是文件选择器的一个例子