我现在在使用 JavaFX 时遇到了一个小问题。我尝试在我的代码中进行文件选择,我可以指向文件夹而不是文件。目前我没有解决方案。您知道解决方法吗(除了使用 swing 中的 JFileChooser 之外)?
非常感谢您的提前答复
编辑:我现在已经得到了答案,正在尝试测试它,但我忘记提及 JavaFX 的版本。这是最新的 2.0.3 稳定版,几天前发布(但最初的非 beta 2.0 和 2.0.1 也有这个问题)
最佳答案
一个FileChooser作为 JavaFX API 的一部分提供。
来自 javadoc 的示例用法:
FileChooser fileChooser = new FileChooser();
fileChooser.setTitle("Open Resource File");
fileChooser.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 = fileChooser.showOpenDialog(mainStage);
if (selectedFile != null) {
mainStage.display(selectedFile);
}
<小时/>
一个DirectoryChooser作为 the 2.1 release 的一部分添加到 JavaFX .
用法是:
DirectoryChooser chooser = new DirectoryChooser();
chooser.setTitle("JavaFX Projects");
File defaultDirectory = new File("c:/dev/javafx");
chooser.setInitialDirectory(defaultDirectory);
File selectedDirectory = chooser.showDialog(primaryStage);
issue tracker提到 2.0GA 版本的解决方法:“访问私有(private) Oracle API Glass 方法 CommonDialogs.showFolderChooser
”。
DirectoryChooser 和 FileChooser 都将使用操作系统提供的 native 文件和目录选择用户界面对话框在内部实现(它们实际上并未实现为具有 SceneGraph 的 JavaFX 阶段)。
这意味着这些元素的外观和感觉将根据 JavaFX 运行所在的操作系统平台和 native 窗口管理工具包的不同而有所不同。
关于directory - JavaFX 文件选择器和目录选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9375938/