2

JFileChooser特定のディレクトリで開き、ユーザーがその中のディレクトリを選択できるようにします(シングルクリックで選択してボタンOKを押すと)。

ただし、ディレクトリをダブルクリックすると、ファイル チューザはそのディレクトリを選択する代わりに開きます。

どうすればいいですか

  1. ダブルクリックをオーバーライドしてディレクトリを選択する
  2. 初期ディレクトリの外への移動を無効にする
  3. ダブルクリックを無効にしますか?

isTraversable()ファイルチューザーをディレクトリに制限するために機能するメソッドをFileViewオーバーライドしようとしましたがFileSystemView、そのディレクトリ内のアイテムは表示されません。

これが私が今持っているコードです:

JFileChooser fc = new JFileChooser(dir);

fc.setApproveButtonText("OK");
fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
fc.setMultiSelectionEnabled(false);
fc.showOpenDialog(fileChooserDialog);
File file = fc.getSelectedFile();
if (file.getParent().equals(dir)) {
    //do something
}
4

1 に答える 1

2

アクション マップを変更できます。私はコンパイラ ATM にアクセスできないので、これをテストすることはできませんが、動作するはずです。

JFileChooser chooser = new JFileChooser(".");  
ActionMap am = chooser.getActionMap();  
Action key = am.get("WHATEVER_THEACTIONAME_FOR_OPEN-DIR._IS") //I think it's "Open Folder";
key.setEnabled(false);

時間とコンパイラにアクセスできるようになったら、後でこの回答を更新します。

于 2013-08-02T20:57:06.660 に答える