JavaFX FileChooser

一笑奈何 提交于 2020-08-20 18:27:52

问题


I came across a little problem now with JavaFX. I tried to make a filechoosing in my code where I can point on a FOLDER instead of a file. Currently I don't have a solution for it. Do you know a workaround (except using JFileChooser from swing)?

Many thanks for the answers in advance

edit: I already got now an answer, trying to test it, but I forgot to mention the version of JavaFX. It is the latest 2.0.3 stable here, released a few days ago (but the initial non-beta 2.0 and 2.0.1 had this issue also)


回答1:


A DirectoryChooser was added to JavaFX as part of the 2.1 release. Usage is:

DirectoryChooser chooser = new DirectoryChooser();
chooser.setTitle("JavaFX Projects");
File defaultDirectory = new File("c:/dev/javafx");
chooser.setInitialDirectory(defaultDirectory);
File selectedDirectory = chooser.showDialog(primaryStage);

The issue tracker mentions a work-around for the 2.0GA release: "accessing the private Oracle API Glass method CommonDialogs.showFolderChooser".




回答2:


Unlike in swing where JFileChooser was being used to select folders and individual files, in javafx,there is FileChooser class which is used for choosing individual files and DirectoryChooser class for selecting directory

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);
}

is an example of a Directory chooser.

FileChooser fileChooser = new FileChooser();
fileChooser.setTitle("Open Folder");
fileChooser.showDialog(stage);

is an example of file chooser



来源:https://stackoverflow.com/questions/9375938/javafx-filechooser

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!