JavaFX Directory选择器

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

JavaFX DirectoryChooser是一个对话框,使用户可以通过文件浏览器从本地计算机中选择目录。 JavaFX DirectoryChooser在类javafx.stage.DirectoryChooser中实现。在此JavaFX DirectoryChooser教程中,我将向我们展示如何使用DirectoryChooser对话框。

这是一个JavaFXDirectoryChooser外观的示例屏幕截图:

创建一个DirectoryChooser

为了使用DirectoryChooser,必须首先创建一个DirectoryChooser实例。这是创建JavaFXDirectoryChooser的示例:

DirectoryChooser directoryChooser = new DirectoryChooser();

显示DirectoryChooser对话框

为了使" DirectoryChooser"可见,我们必须调用它的" showDialog()"方法。这是显示JavaFXDirectoryChooser的示例:

File selectedDirectory = directoryChooser.showDialog(primaryStage);

showDialog()方法返回的File代表用户在DirectoryChooser中选择的目录。

" stage"参数是应该"拥有"" DirectoryChooser"对话框的JavaFX" Stage"。 "拥有"是指从中显示" DirectoryChooser"对话框的"阶段"。通常是按钮所在的"舞台",用于启动" DirectoryChooser"的显示。

显示" DirectoryChooser"通常是由于单击按钮或者菜单项而完成的。这是一个完整的JavaFX示例,其中显示了一个按钮,单击该按钮可打开" DirectoryChooser":

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.VBox;
import javafx.stage.DirectoryChooser;
import javafx.stage.Stage;

import java.io.File;

public class DirectoryChooserExample extends Application {
    public static void main(String[] args) {
        launch(args);
    }

    @Override
    public void start(Stage primaryStage) {
        primaryStage.setTitle("JavaFX App");

        DirectoryChooser directoryChooser = new DirectoryChooser();
        directoryChooser.setInitialDirectory(new File("src"));

        Button button = new Button("Select Directory");
        button.setOnAction(e -> {
            File selectedDirectory = directoryChooser.showDialog(primaryStage);

            System.out.println(selectedDirectory.getAbsolutePath());
        });

        VBox vBox = new VBox(button);
        //HBox hBox = new HBox(button1, button2);
        Scene scene = new Scene(vBox, 960, 600);

        primaryStage.setScene(scene);
        primaryStage.show();
    }

}

设置初始目录

我们可以设置JavaFX" DirectoryChooser"的初始目录,这意味着" DirectoryChooser"在打开时将位于根目录。在上面的示例中也显示了这一点。我们可以通过setInitialDirectory()方法设置初始目录。这是设置JavaFXDirectoryChooser的初始目录的示例:

directoryChooser.setInitialDirectory(new File("data/json/invoices"));

这个例子将给定的" DirectoryChooser"的初始目录设置为" data / json / invoices"。