我正在自定义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() );
}
}
};