(Заранее спасибо! Пожалуйста, дайте мне знать, если вам нужна дополнительная информация. Пример кода на Нижний.)
Проблема, которую я пытаюсь решить:
Я пытаюсь заставить этот объект JFileChooser отображать только каталоги (а не файлы) с помощью объекта javax.swing.filechooser.FileFilter, который имеет это в переопределенном методе accept(File file): return file.isDirectory();
. Однако, по крайней мере, на моем Mac это не мешает отображать файлы вместе с каталогами (это предотвращает выбор файлов без использования метода setFileSelectionMode()).
Вопрос
Я что-то упустил? Если нет, то сталкивался ли кто-нибудь с этим раньше?
Мое понимание/предположения:
setFileFilter()
.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";
}
}
Спасибо!
Алексей