简单的 JFileChooser FileFilter 不工作
Simple JFileChooser FileFilter not working
以下是使用 JFileChooser
派生自另一个 Whosebug 问题的 this as suggested by this 答案,将文件保存在用户输入目录中的简单代码。但是,此代码不会按预期工作,因为文件过滤器不会显示所有已定义的过滤器。
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 教程,稍作修改。
Last minute modification
所以我使用 chooser.addChoosableFileFilter(filter);
而不是 chooser.setFileFilter(filter);
并且文件 f_sample
现在包含用户定义的文件。但是,定义的过滤器仍然不会显示在 JFileChooser
window.
您在设置过滤器之前展示了您的选择器
改为
JFileChooser chooser = new JFileChooser();
FileNameExtensionFilter filter = new FileNameExtensionFilter("JPG & GIF Images",
"jpg", "gif");
chooser.setFileFilter(filter);
int retval = chooser.showDialog(chooser, "Save");
// etc
以下是使用 JFileChooser
派生自另一个 Whosebug 问题的 this as suggested by this 答案,将文件保存在用户输入目录中的简单代码。但是,此代码不会按预期工作,因为文件过滤器不会显示所有已定义的过滤器。
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 教程,稍作修改。
Last minute modification
所以我使用 chooser.addChoosableFileFilter(filter);
而不是 chooser.setFileFilter(filter);
并且文件 f_sample
现在包含用户定义的文件。但是,定义的过滤器仍然不会显示在 JFileChooser
window.
您在设置过滤器之前展示了您的选择器
改为
JFileChooser chooser = new JFileChooser();
FileNameExtensionFilter filter = new FileNameExtensionFilter("JPG & GIF Images",
"jpg", "gif");
chooser.setFileFilter(filter);
int retval = chooser.showDialog(chooser, "Save");
// etc