Я пытаюсь использовать JFileChooser
для получения файлов для загрузки и сохранения. Диалог, который появляется с openFileDialog()
, отлично работает, но когда я использую метод saveFileDialog()
, диалоговое окно имеет все имена файлов, выделенные серым цветом. Это происходит с FileFilter
(мой пример включает в себя один, чтобы лучше показать, что я вижу).JFileChooser.showSaveDialog: все файлы greyed out
Вот минимальная программа для иллюстрации:
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.filechooser.FileNameExtensionFilter;
public class Temp extends JFrame {
public static void main(String[] args){
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JFileChooser chooser = new JFileChooser();
FileNameExtensionFilter filter = new FileNameExtensionFilter("Text File", "txt");
chooser.setFileFilter(filter);
frame.setVisible(true);
chooser.showOpenDialog(null);
chooser.showSaveDialog(null);
}
}
Вот что я вижу в открытом диалоге: Open Dialog
Вот что я вижу в диалоговом окне Save: Save Dialog
Несмотря на то что вы неактивны, все файлы в диалоговом окне сохранения можно выбрать.
Я нахожусь на Mac/Mountain Lion и Java 7, если это имеет значение.
Ожидается ли такое поведение? Есть ли способ изменить это?
(Edit: за комментариями MadProgrammer + trashgod ниже, это, кажется, согласуется с выражением + чувства других (родных) Mac приложений)
Короткий ответ, да, это ожидаемое поведение. В отличие от Windows, которая просто исключает файлы из видимого списка, по какой-то странной причине Mac OS Look & Feel решает, что файлы должны быть серыми (если их не выбрать) – MadProgrammer
Но в соответствии с фильтром.txt-файлы должны быть как видимыми, так и выбираемыми (см., как они выглядят в диалоговом окне «Открыть»: в черном (в отличие от серого) шрифте – YosemiteMark
@MadProgrammer правильно. Вы выбираете серое имя, которое затем становится новым кандидатом ' Сохранить как 'имя. – trashgod