2017-01-02 4 views

答えて

0

はそれを説明しながら私の心は私のトロール、いくつかの回を書き換えなければなりませんでした。

あなたはFileSelectionModeをFILES_ONLYに設定すると、JFileChooserはファイルのみを表示し、ディレクトリは表示されなくなります。 しかし実際には、入力としてディレクトリを選択できるようになりません。 これは、期待どおりにファイルを取得するためです。

しかし、 彼らがまだ表示さばかりしていて、(原因の)それらに行くことができるディレクトリを見ずにナビゲートするdiscustingly不便だろうので

同じことがdirecotries_onlyこのために行く、まだあなたのファイルが表示されますが、あなたは、入力としてそれらを選択傾けます。

+0

感謝を。私は何かが足りないことを知っていた。それは私の誤解を説明するものです。 –

0

JFileChooser.FILES_ONLYフラグは、ファイルのみを選択できることを示します。ユーザーがファイルを検索したい場合は、ディレクトリが表示されます。

ビューの使用からディレクトリを除外したい場合は、ディレクトリを非表示にするようにFileFilter

fc.setFileFilter(new FileFilter() { 

     @Override 
     public String getDescription() { 
      return "Only files"; 
     } 

     @Override 
     public boolean accept(File f) { 
      return !f.isDirectory(); 
     } 
    }); 
2

は思えます。だから、ちょうどカスタムFileSystemView作成:

JFileChooser jFileChooser = new JFileChooser(); 

jFileChooser.setFileSystemView(new FileSystemView() { 
    @Override 
    public File[] getFiles(File dir, boolean useFileHiding) { 
     return Arrays.stream(super.getFiles(dir, useFileHiding)).filter(File::isFile).toArray(File[]::new); 
    } 

    @Override 
    public File createNewFolder(File containingDir) throws IOException { 
     throw new NotImplementedException(); 
    } 
}); 

あなたは私のホームディレクトリにあるファイルを、私はgetFiles方法でファイルだけを残して、今私は見る見ることができるように:

hide directories in home directory

+0

ありがとうございます。私はそれを使うことができます。 –

関連する問題