📅  最后修改于: 2023-12-03 15:31:35.819000             🧑  作者: Mango
JavaFX 中的 DirectoryChooser 类用于展示一个对话框,让用户选择文件夹。该类继承自 FileChooser 类,因此具备 FileChooser 类所有的功能。
首先,需要创建一个 DirectoryChooser 对象:
DirectoryChooser directoryChooser = new DirectoryChooser();
在创建对象时可以传入一个标题字符串,该字符串将显示在对话框的标题栏上:
DirectoryChooser directoryChooser = new DirectoryChooser();
directoryChooser.setTitle("Choose Directory");
接下来,需要显示对话框,让用户选择文件夹。可以通过调用 DirectoryChooser 的 showDialog()
方法来显示对话框:
File selectedDirectory = directoryChooser.showDialog(stage);
其中,stage
参数为该对话框所属的舞台(Stage)对象。该方法返回选择的文件夹对象(实际上是一个 File
对象)。
除了上述基础的功能外,DirectoryChooser 还支持更多的配置选项。比如,可以设置默认的文件夹、可选择的文件夹和文件类型过滤器。
可以通过 setInitialDirectory()
方法来设置默认的文件夹。该方法需要传入一个 File
对象,表示默认的文件夹路径:
DirectoryChooser directoryChooser = new DirectoryChooser();
directoryChooser.setInitialDirectory(new File("/path/to/folder"));
可以通过 setInitialDirectory()
方法来设置默认的文件夹。该方法需要传入一个 File
对象,表示默认的文件夹路径:
DirectoryChooser directoryChooser = new DirectoryChooser();
directoryChooser.setInitialDirectory(new File("/path/to/folder"));
除了选择文件夹外,DirectoryChooser 还可以选择文件。可以通过 getExtensionFilters()
方法获取一个文件类型过滤器列表,然后添加或删除过滤器。
DirectoryChooser directoryChooser = new DirectoryChooser();
// 添加过滤器
FileChooser.ExtensionFilter filter = new FileChooser.ExtensionFilter("Image Files", "*.jpg", "*.png");
directoryChooser.getExtensionFilters().add(filter);
// 删除过滤器
directoryChooser.getExtensionFilters().clear();
以下是一个完整的示例代码,演示了如何使用 DirectoryChooser 类选择文件夹:
import java.io.File;
import javafx.application.Application;
import javafx.stage.DirectoryChooser;
import javafx.stage.Stage;
public class DirectoryChooserExample extends Application {
@Override
public void start(Stage primaryStage) {
primaryStage.setTitle("Directory Chooser Example");
DirectoryChooser directoryChooser = new DirectoryChooser();
directoryChooser.setTitle("Choose Directory");
directoryChooser.setInitialDirectory(new File(System.getProperty("user.home")));
File selectedDirectory = directoryChooser.showDialog(primaryStage);
if (selectedDirectory != null) {
System.out.println("Selected Directory: " + selectedDirectory.getAbsolutePath());
}
}
public static void main(String[] args) {
launch(args);
}
}
DirectoryChooser 类能够方便地让用户选择文件夹,并且支持多种配置选项,可以满足大多数文件选择器的需求。