【发布时间】:2012-08-17 08:16:28
【问题描述】:
用户可以使用 JFileChooser 选择一个或多个 mp3 文件吗?
我只能选择用户一个文件,使用这种方法。
【问题讨论】:
标签: java swing multi-select jfilechooser
用户可以使用 JFileChooser 选择一个或多个 mp3 文件吗?
我只能选择用户一个文件,使用这种方法。
【问题讨论】:
标签: java swing multi-select jfilechooser
只需将多选设置为 true 并将选择模式设置为 JFileChooser.FILES_AND_DIRECTORIES,它将适用于多个文件和目录中的所有文件:
fileChooser.setFileSelectionMode( JFileChooser.FILES_AND_DIRECTORIES );
fileChooser.setMultiSelectionEnabled(true);
然后以这种方式检索所有文件:
fileChooser.getSelectedFiles();
【讨论】:
fileChooser.getSelectedFiles() 返回File[],所以你需要适当地修改你的代码。
我对您的要求的理解是:
如果这是您想要的,我认为以下内容可能适用于这种情况。请注意,我将实现留给您,因为您知道如何创建播放列表或如何创建单个文件并将其提供给您的播放器。
/** This method returns a set of files chosen by the user.
* Returns null if selection is cancelled
**/
private File[] openFiles(){
JFileChooser fileChooser = new JFileChooser();
fileChooser.setMultiSelectionEnabled(true);
fileChooser.setFileSelectionMode( JFileChooser.FILES_AND_DIRECTORIES );
int optionChosen = fileChooser.showOpenDialog(this);
return (optionChosen == JFileChooser.CANCEL_OPTION) ? null : fileChooser.getSelectedFiles();
}
public void actionPerformed(ActionEvent e){
File[] selectedFiles = openFiles();
if(selectedFiles == null){
//handleNoFileChosen
}else if(selectedFiles.length == 1){
//handle single file selected
}else{
//handle creating playlist
}
}
【讨论】: