【问题标题】:java programme like a winamp select file类似winamp选择文件的java程序
【发布时间】:2012-08-17 08:16:28
【问题描述】:

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

我只能选择用户一个文件,使用这种方法。

【问题讨论】:

    标签: java swing multi-select jfilechooser


    【解决方案1】:

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

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

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

    fileChooser.getSelectedFiles();
    

    【讨论】:

    • 干涉,此时代码没有编译。我不能再添加一个文件了
    • @zenx: fileChooser.getSelectedFiles() 返回File[],所以你需要适当地修改你的代码。
    • 你说代码没有编译,能不能把修改后的代码贴上来选择多个文件。
    • @zenx:也许您应该考虑编辑您的问题并发布您的代码的SSCCE 版本。这样一来,您上面的所有 cmets 都会对某人有意义。
    【解决方案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
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-20
      • 2011-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-22
      相关资源
      最近更新 更多