JFileChooser中的Mulitype选择

时间:2016-05-01 05:27:42

标签: java jfilechooser

我的代码:

JFileChooser dialog = new JFileChooser();
dialog.showOpenDialog(rootPane);
dialog.setMultiSelectionEnabled(true);
dialog.setFileFilter(new FileFilter() {

    @Override
    public String getDescription() {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public boolean accept(File arg0) {
        return arg0.getAbsolutePath().endsWith("png")||
                arg0.getAbsolutePath().endsWith("jpg");
    }
});
File[] file = dialog.getSelectedFiles();

程序运行时,我无法选择多个文件。

enter image description here

2 个答案:

答案 0 :(得分:4)

在打开对话框之前必须先设置MultiSelection。

dialog.setMultiSelectionEnabled(true);  
dialog.showOpenDialog(rootPane);

同样用于设置filefilter。

JFileChooser dialog = new JFileChooser();
dialog.setMultiSelectionEnabled(true);
dialog.setFileFilter(new FileFilter() {

    @Override
    public String getDescription() {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public boolean accept(File arg0) {
        return arg0.getAbsolutePath().endsWith("png")
                || arg0.getAbsolutePath().endsWith("jpg");
    }

});
dialog.showOpenDialog(rootPane);//open it last
File[] file = dialog.getSelectedFiles();

答案 1 :(得分:1)

您需要将dialog.setMultiSelectionEnabled(true);移到dialog.showOpenDialog(rootPane);之上才能使其发挥作用。此外,如果您不需要说明,则可以简化代码,如下所示。希望这会有所帮助。

`JFileChooser dialog = new JFileChooser();
 dialog.setMultiSelectionEnabled(true);
 dialog.showOpenDialog(null);
 dialog.addChoosableFileFilter(new FileNameExtensionFilter("pngFilter", "png"));
 dialog.addChoosableFileFilter(new FileNameExtensionFilter("jpgFilter", "jpg"));
 File[] file = dialog.getSelectedFiles();`