Ниже приведен простой код для сохранения файла в пользовательском каталоге ввода с использованием JFileChooser
, полученного из this , как это предлагается this ответа из другого вопроса stackoverflow. Однако этот код не будет работать должным образом, так как фильтр файлов не отображает все определенные фильтры.
public static void main(String[] args) {
JFrame main = new JFrame();
JButton saveto = new JButton("save");
saveto.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
JFileChooser chooser = new JFileChooser();
int retval = chooser.showDialog(chooser, "Save");
FileNameExtensionFilter filter = new FileNameExtensionFilter("JPG & GIF Images", "jpg", "gif");
chooser.setFileFilter(filter);
if (retval == JFileChooser.APPROVE_OPTION)
{
File f_sample = chooser.getSelectedFile();
System.out.println(f_sample + ".csv");
}
}
});
main.add(saveto);
main.setSize(300,300);
main.setLocationRelativeTo(null);
main.setVisible(true);
main.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
}
Файл f_sample
также будет содержать ноль, но удаление фильтра приведет к файлу f_sample
работать по назначению, содержащий выбранный файл. Итак, я предположил, что причиной неисправности является FileFilter
Что не так с файловым фильтром? И как я могу заставить это работать? Обратите внимание, что код взят из Oracle Tutorial с небольшим изменением.
Последнее изменение
Поэтому я использовал chooser.addChoosableFileFilter(filter);
вместо chooser.setFileFilter(filter);
и файл f_sample
теперь содержит файл, определенный пользователем. Однако определенные фильтры не будут отображаться в окне JFileChooser
.