(事前に感謝します!さらに情報が必要な場合はお知らせください。下部にサンプルコードがあります。)
私が解決しようとしている問題:
accept(File file)オーバーライドメソッドでこれを含むjavax.swing.filechooser.FileFilterオブジェクトを使用して、このJFileChooserオブジェクトにディレクトリのみ(ファイルではなく)を表示させようとしていますreturn file.isDirectory();
。ただし、少なくとも私のMacでは、ファイルがディレクトリと一緒に表示されるのを妨げているようには見えません(setFileSelectionMode()メソッドを使用せずにファイルを選択するのを妨げています)。
質問
私は何かが足りないのですか?そうでない場合、これまでに誰かがこれに遭遇したことがありますか?
私の理解/仮定:
- この魔法は、javax.swing.filechooser.FileFilterオブジェクトをJFileChooserの
setFileFilter()
メソッドに渡すときに発生するはずです。 - setFileFilter()を使用したJFileChooserは、
setSelectionMode( JFileChooser.DIRECTORIES_ONLY );
コード
import java.io.File;
import javax.swing.filechooser.FileFilter;
// inside a method that's adding this to a JPanel
_fileChooser = new JFileChooser( "." );
_fileChooser.setControlButtonsAreShown( false );
_fileChooser.setFileFilter( new FolderFilter() );
// _fileChooser.setFileSelectionMode( JFileChooser.DIRECTORIES_ONLY );
_panelMidLeft.add( _fileChooser );
// an inner class, defined somewhere else in the class
private class FolderFilter extends javax.swing.filechooser.FileFilter {
@Override
public boolean accept( File file ) {
return file.isDirectory();
}
@Override
public String getDescription() {
return "We only take directories";
}
}
ありがとう!
アレックス