使用jFileChooser添加扩展名

时间:2017-11-21 17:52:18

标签: java swing jfilechooser

我正在创建一个程序,用于创建具有不同扩展名的文件。为此,我使用JFileChooser。我已将FileFilter设置为仅接受我想要的扩展程序,但是当我选择一个扩展程序时,我仍然必须自己在文件名中添加扩展名。我怎么解决这个问题?非常感谢!

2 个答案:

答案 0 :(得分:0)

您必须在用户关闭对话框后自行添加扩展程序。

此示例允许用户指定以“.foo”或“.bar”结尾的文件,如果用户没有这样做,则会添加该扩展名。

RewriteEngine on
# Set the CF-IPCountry header value as "Country" variable
SetEnvIf CF-IPCountry "(.*)$" Country=$1

# Than redirect it if the variable match. "GB" for <United Kingdom>
RewriteCond %{ENV:Country} GB
RewriteRule .* - [F]

答案 1 :(得分:0)

为此,您必须在用户按下JFileChooser的验证按钮之后,让用户选择文件过滤器,然后将文件过滤器描述与扩展列表进行比较,然后使用代码中的指定扩展名初始化文件对象(如果存在)一场比赛。我不知道你是否会理解我。

        Modelexcel model = new Modelexcel();
        JFileChooser selectFile = new JFileChooser();;
        File file;

     JButton btnExporterVersExcel = new JButton("Exporter vers Excel");
        btnExporterVersExcel.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {
        if(selectFile.showDialog(null, "Exporter")==JFileChooser.APPROVE_OPTION) {
                            String extension=selectFile.getFileFilter().getDescription();
                            if(extension.contains("(*.xlsx)")) {
                                file= new File(selectFile.getSelectedFile()+".xlsx");
                            }else if(extension.contains("(*.xls)")){
                                file= new File(selectFile.getSelectedFile()+".xls");
                            }
                            if(file.getName().endsWith("xls") || 
        file.getName().endsWith("xlsx")) {
                                JOptionPane.showMessageDialog(null, model.Export(file, table));
                            }else {
                                JOptionPane.showMessageDialog(null, "Format invalid");
                            }
                        }
}
        });

这是我的代码的一部分,以“ .xls”和“ .xlsx”格式保存文件。希望它能对您有所帮助