JavaFX FileChooser
JavaFX FileChooser类(javafx.stage.FileChooser)是一个对话框,使用户可以通过文件浏览器从本地计算机中选择一个或者多个文件。 JavaFX FileChooser在类javafx.stage.FileChooser中实现。在本JavaFXFileChooser教程中,我将向我们展示如何使用JavaFXFileChooser对话框。
这是JavaFXFileChooser外观的示例屏幕截图:
创建一个FileChooser
为了使用JavaFX的FileChooser对话框,我们必须首先创建一个FileChooser实例。这是创建JavaFXFileChooser对话框的示例:
FileChooser fileChooser = new FileChooser();
如我们所见,创建FileChooser实例非常容易。
显示FileChooser对话框
通过调用JavaFX的showOpenDialog()方法来显示JavaFX的FileChooser对话框。这是显示" FileChooser"对话框的示例:
File selectedFile = fileChooser.showOpenDialog(stage);
showOpenDialog()方法返回的File是用户在FileChooser中选择的文件。
" stage"参数是应该"拥有"" FileChooser"对话框的JavaFX" Stage"。 "拥有"是指从中显示"文件选择器"对话框的"阶段"。通常是按钮位于其中的"阶段",开始显示" FileChooser"。
显示" FileChooser"通常是由于单击按钮或者菜单项而完成的。这是一个完整的JavaFX示例,其中显示了一个按钮,当单击该按钮时会打开一个" FileChooser":
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.VBox;
import javafx.stage.FileChooser;
import javafx.stage.Stage;
public class FileChooserExample extends Application {
    public static void main(String[] args) {
        launch(args);
    }
    @Override
    public void start(Stage primaryStage) {
        primaryStage.setTitle("JavaFX App");
        FileChooser fileChooser = new FileChooser();
        Button button = new Button("Select File");
        button.setOnAction(e -> {
            File selectedFile = fileChooser.showOpenDialog(primaryStage);
        });
        VBox vBox = new VBox(button);
        Scene scene = new Scene(vBox, 960, 600);
        primaryStage.setScene(scene);
        primaryStage.show();
    }
}
这个例子创建了一个带有按钮的完整JavaFX应用程序,单击该按钮将打开一个FileChooser。注意如何将JavaFX应用程序的主要Stage作为参数传递给FileChooser`showOpenDialog()方法。
设置初始目录
我们可以通过它的setInitialDirectory()方法设置显示在JavaFX FileChooser中的初始目录。这是设置" FileChooser"对话框的初始目录的示例:
fileChooser.setInitialDirectory(new File("data"));
这个例子将FileChooser显示的初始目录设置为data。
设置初始文件名
我们可以设置初始文件名以显示在FileChooser中。不过,某些平台(例如Windows)可能会忽略此设置。这是设置FileChooser的初始文件名的示例:
fileChooser.setInitialFileName("myfile.txt");
本示例将初始文件名设置为myfile.txt。
添加文件名过滤器
可以向JavaFXFileChooser添加文件名过滤器。文件名过滤器用于过滤用户在文件系统中浏览时在FileChooser中显示的文件。这是添加文件名过滤器的示例:
FileChooser fileChooser = new FileChooser();
fileChooser.getExtensionFilters().addAll(
     new FileChooser.ExtensionFilter("Text Files", "*.txt")
    ,new FileChooser.ExtensionFilter("HTML Files", "*.htm")
);
这个例子在FileChooser中添加了两个文件名过滤器。用户可以在" FileChooser"对话框中的这些文件名过滤器之间进行选择。

