web-dev-qa-db-ja.com

JavaFX FileChooser

JavaFXで小さな問題に遭遇しました。ファイルではなくフォルダをポイントできるように、コードでファイルを選択しようとしました。現在、私はそれに対する解決策を持っていません。回避策を知っていますか(swingからJFileChooserを使用する場合を除く)。

前もって答えてくれてありがとう

編集:私はすでにそれをテストしようとして、答えを得ましたが、JavaFXのバージョンについて言及するのを忘れていました。ここで最新の2.0.3安定版であり、数日前にリリースされました(ただし、最初の非ベータ2.0および2.0.1にもこの問題がありました)

56
newhouse

2.1リリース の一部としてDirectoryChooserがJavaFXに追加されました。使用法は次のとおりです。

DirectoryChooser chooser = new DirectoryChooser();
chooser.setTitle("JavaFX Projects");
File defaultDirectory = new File("c:/dev/javafx");
chooser.setInitialDirectory(defaultDirectory);
File selectedDirectory = chooser.showDialog(primaryStage);

issue tracker は、2.0GAリリースの回避策に言及しています:「プライベートOracle API GlassメソッドへのアクセスCommonDialogs.showFolderChooser "。

110
jewelsea

JFileChooserを使用してフォルダーと個々のファイルを選択するSwingとは異なり、javafxには、個々のファイルを選択するために使用されるFileChooserクラスと、ディレクトリを選択するためのDirectoryChooserクラスがあります

    DirectoryChooser directoryChooser = new DirectoryChooser();
    directoryChooser.setTitle("Open Resource File");
    directoryChooser.getExtensionFilters().addAll(
    new ExtensionFilter("Text Files", "*.txt"),
    new ExtensionFilter("Image Files", "*.png", "*.jpg", "*.gif"),
    new ExtensionFilter("Audio Files", "*.wav", "*.mp3", "*.aac"),
    new ExtensionFilter("All Files", "*.*"));
    File selectedFile = directoryChooser.showDialog(mainStage);
    if (selectedFile != null) {
          mainStage.display(selectedFile);
    }

ディレクトリ選択の例です。

    FileChooser fileChooser = new FileChooser();
    fileChooser.setTitle("Open Folder");
    fileChooser.showDialog(stage);

ファイル選択の例です

3
Emmanuel Ogoma