Я настраиваю приложение Java для личного использования. Это приложение может создавать множество миди-файлов на Java. Я хотел бы СОХРАНИТЬ много файлов одновременно из Jlist. Я уже мог выбрать много файлов за один раз.
(я уже изменил ниже)
public interface ListSelectionModel { int MULTIPLE_INTERVAL_SELECTION
> = 2; }
Проблемы Я не могу одновременно сохранить много файлов из списка (JList).
Моя идея Боюсь, у меня не очень хорошая идея. Я не силен в Java. Я исследовал эту проблему в Google и книгах. Я ожидаю, что мне нужно использовать код, как показано ниже.
идея(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() );
}
}
};