2016-05-01 52 views
0

我的代碼:Mulitype選擇在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(); 

當程序運行時,我不能選擇超過1個文件。

enter image description here

+1

請創建併發佈一個小而簡單的完整程序來說明您的問題,[MCVE](http://stackoverflow.com/help/mcve)。請檢查鏈接瞭解這個非常有用的工具的詳細信息。 –

回答

4

你必須設置多選前能打開對話框。

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

您需要將您的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();` 
相關問題