ディレクトリ選択ダイアログ(DirectoryChooser)の作成方法

ディレクトリ選択ダイアログ(DirectoryChooser)の作成方法

DirectoryChooserクラスの以下のコンストラクタを使ってディレクトリ選択ダイアログを作成することができます。

DirectoryChooser()

ディレクトリ選択ダイアログを表示するにはDirectoryChooserクラスのshowDialogメソッドを使います。

DirectoryChooser.showDialog()

具体的にはまずDirectoryChooser のインスタンスを生成し、setTitleメソッドを使ってディレクトリ選択ダイアログのタイトルを設定します。

        final DirectoryChooser fc = new DirectoryChooser();
        fc.setTitle("ディレクトリ選択");

次にボタンのクリックイベントでshowDialogメソッドを使ってダイアログを表示し、選択したディレクトリの絶対パスをshowOpenDialogメソッドの戻り値として受け取ります。showOpenDialogメソッドの引数はjavafx.stage.Stageになっているため、ここではprimaryStageを渡します。(nullでも問題ない)。また、ディレクトリ選択ダイアログが閉じるまで後続の処理は実行されません。

        btn.setOnAction(new EventHandler<ActionEvent>() {
            @Override
            public void handle(ActionEvent event) {
                File importFile = fc.showDialog(primaryStage);

                if (importFile != null) {
                    label.setText(importFile.getPath().toString());
                }
            }
        });


ディレクトリ選択ダイアログ作成サンプル

package mysample.directorychooser;

import java.io.File;
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.layout.StackPane;
import javafx.scene.layout.VBox;
import javafx.stage.DirectoryChooser;
import javafx.stage.Stage;

public class DirectoryChooser01 extends Application {

    @Override
    public void start(final Stage primaryStage) {
        Button btn = new Button();
        btn.setText("ディレクトリ選択");

        final DirectoryChooser fc = new DirectoryChooser();
        fc.setTitle("ディレクトリ選択");

        final Label label = new Label();

        btn.setOnAction(new EventHandler<ActionEvent>() {
            @Override
            public void handle(ActionEvent event) {
                File importFile = fc.showDialog(primaryStage);

                if (importFile != null) {
                    label.setText(importFile.getPath().toString());
                }
            }
        });

        VBox vbox = new VBox();
        vbox.getChildren().addAll(btn, label);

        StackPane root = new StackPane();
        root.getChildren().addAll(vbox);

        Scene scene = new Scene(root, 300, 250);

        primaryStage.setTitle("Hello World!");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}


このサンプルを実行すると以下のように表示されます。


画面に表示されているボタンをクリックすると以下のようなファイル選択ダイアログが表示されます。(MACの場合)。

ファイルを選択すると選択したファイルのパスが表示されます。



  • 2ディレクトリ選択ダイアログ(DirectoryChooser)の作成方法

<