JavaFX FileChooser

时间:2020-01-09 10:36:36  来源:igfitidea点击:

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"对话框中的这些文件名过滤器之间进行选择。