java程序就像一个winamp选择文件

时间:2012-08-17 08:16:29

标签: java swing multi-select jfilechooser

用户可以使用JFileChooser选择一个或多个mp3文件吗?

我只能使用此方法选择用户一个文件。

2 个答案:

答案 0 :(得分:6)

只需将多项选择设置为true,将选择模式设置为JFileChooser.FILES_AND_DIRECTORIES,它将适用于多个文件和目录中的所有文件:

fileChooser.setFileSelectionMode( JFileChooser.FILES_AND_DIRECTORIES );
fileChooser.setMultiSelectionEnabled(true);

然后以这种方式检索所有文件:

fileChooser.getSelectedFiles();

答案 1 :(得分:2)

我对您的要求的理解是:

  • 用户可以选择一个或多个文件
  • 如果选择了单个文件,则使用该文件
  • 如果选择了多个文件,那么您将创建一个播放列表并使用此播放列表。

如果这是您想要的,我认为以下内容可能适用于此方案。请注意,我已将实施内容留给您,因为您知道如何创建播放列表或如何创建单个文件并将其提供给播放器。

/** 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
    }
}