(Java)如何在JList的Jfilechooser中同时保存多个文件?

时间:2018-01-29 09:37:27

标签: java list jlist jfilechooser

照片 enter image description here 目的

我正在自定义Java App以供个人使用。这个应用程序可以用Java制作许多midi文件。 我想从Jlist同时保存许多文件。我已经可以一次选择多个文件了。

(我已在下面更改过)

public interface ListSelectionModel { int MULTIPLE_INTERVAL_SELECTION
> = 2; }

问题 我无法从列表(JList)中同时保存多个文件。

我的想法 我恐怕没有好主意。我不擅长Java。我在谷歌和书籍中研究过这个问题。我希望我需要使用如下代码。

主意(1)

File[] files = getSelectedFiles();

主意(2)

Zip系统

(原始电话)

/**
 * Save File Dialog
 */
private class MidiFileChooser extends JFileChooser {
    {
        setFileFilter(new FileNameExtensionFilter("MIDI sequence (*.mid)", "mid"));
    }
    /**
     * Save File Action
     */
    public Action saveMidiFileAction = getModel().new SelectedSequenceAction(
        "Save",
        "Save selected MIDI sequence to file - Save Midi to File"
    ) {
        @Override
        public void actionPerformed(ActionEvent event) {
            PlaylistTableModel playlistModel = getModel();
            SequenceTrackListTableModel sequenceModel = playlistModel.getSelectedSequenceModel();
            String fn = sequenceModel.getFilename();
            if( fn != null && ! fn.isEmpty() ) setSelectedFile(new File(fn));
            if( showSaveDialog((Component)event.getSource()) != JFileChooser.APPROVE_OPTION ) return;
            File f = getSelectedFile();
            if( f.exists() ) {
                fn = f.getName();
                if( ! confirm("Overwrite " + fn + " ?\n" + fn + " is OK?") ) return;
            }
            try ( FileOutputStream out = new FileOutputStream(f) ) {
                out.write(sequenceModel.getMIDIdata());
                sequenceModel.setModified(false);
                playlistModel.fireSequenceModified(sequenceModel, false);
            }
            catch( IOException ex ) {
                ex.printStackTrace();
                showError( ex.getMessage() );
            }
        }
    };

0 个答案:

没有答案