JavaFXで小さな問題に遭遇しました。ファイルではなくフォルダをポイントできるように、コードでファイルを選択しようとしました。現在、私はそれに対する解決策を持っていません。回避策を知っていますか(swingからJFileChooserを使用する場合を除く)。
前もって答えてくれてありがとう
編集:私はすでにそれをテストしようとして、答えを得ましたが、JavaFXのバージョンについて言及するのを忘れていました。ここで最新の2.0.3安定版であり、数日前にリリースされました(ただし、最初の非ベータ2.0および2.0.1にもこの問題がありました)
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
"。
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);
ファイル選択の例です