2011-03-11 2 views
0

Я пытаюсь сделать программу, и она включает JFileChooser. Я пытаюсь сделать так, чтобы пользователи могли выбирать только файлы .zip. Мой кодJFileChooser Help

JFileChooser finder = new JFileChooser(); 
finder.setFileFilter(new FileNameExtensionFilter(null, ".zip")); 

Это, мне кажется, как она будет работать нормально, но когда я иду в папку с .zip файл, в ZIP-файлы, серые, и я не могу выбрать их. Как это исправить? Кроме того, как побочный вопрос, как мне избавиться от опции «Все файлы» в окне JFileChooser?

ответ

5

Использовать "zip" в качестве дополнительного фильтра, а не ".zip".

+0

Также, как получить имя файла без расширения .zip? – user600842

+0

См. Http://stackoverflow.com/questions/924394/how-to-get-file-name-without-the-extension –

+0

Спасибо, но этот поток говорит о FilenameUtils, который не работает с моей версией Java/Затмение. Eclipse просто подчеркивает его красным цветом, и нет быстрого доступа. Я также попытался импортировать пакет, из которого он поступает, в соответствии с потоком, но это не помогает. Есть идеи? – user600842

1

Расширение для FileFilter не должно содержать точку. Точка - это разделитель между частями имени и расширения, а не частью расширения. Попробуйте это только с zip не .zip. См javadoc for FileFilter for more.

finder.setFileFilter(new FileNameExtensionFilter(null, "zip")); 
10

Да просто заменить «.zip» на „молнии“, а также вы можете удалить опцию „Все файлы“ и сделать его как „Zip Files“. Используйте следующий код для этого ...

JFileChooser fileChooser = new JFileChooser(); 
// select only zip files and add "Zip Files" option 
fileChooser.setFileFilter(new FileNameExtensionFilter("Zip Files", "zip")); 
// remove "All Files" option 
fileChooser.removeChoosableFileFilter(fileChooser.getAcceptAllFileFilter()); 
+0

Я пытался использовать этот код, и он отлично работает. Но в поле «Файлы типа» я ожидал появления «* .txt», но это не так. Как показать пользователю, какой тип файла ожидается от них, чтобы выбрать? –