Это может быть глупый вопрос, но у меня возникли проблемы с этим.реализация следующих и предыдущих кнопок с помощью LinkedList
Я написал метод, который использует LinkedList для перемещения через загруженные MIDI-инструменты. Я хочу сделать следующую и предыдущую кнопку, чтобы каждый раз, когда вы нажимаете кнопку, вы проходите через LinkedList.
Если я жёстко itr.next();
или itr.previous();
несколько раз я могу пройти через LinkedList
public void setInsturment(Synthesizer start,MidiChannel currentChannel[])
{
try
{
start.open();
Soundbank bank = start.getDefaultSoundbank();
start.loadAllInstruments(bank);
LinkedList<Instrument> currentInstrument = new LinkedList<Instrument>();
Instrument instrs[] = start.getLoadedInstruments();
currentInstrument.add(instrs[0]);
currentInstrument.add(instrs[1]);
currentInstrument.add(instrs[2]);
currentInstrument.add(instrs[3]);
currentInstrument.add(instrs[4]);
ListIterator itr = currentInstrument.listIterator();
itr.next();
itr.next();
itr.next();
// nextInstrument();
currentChannel[1].programChange(0,itr.nextIndex());
}
catch(MidiUnavailableException e)
{
System.out.print("error");
}
}
У меня много неприятностей сделать кнопку, которая может перемещаться по списку. Есть ли эффективный способ сделать это? Я пробовал что-то подобное без успеха.
public void actionPerformed(ActionEvent e)
{
if (e.getSource() == nextButton)
{
sound.nextInstrument();
}
public void nextInstrument()
{
itr.next();
}
Спасибо заранее, ребята!
Почему связанный список? ArrayList и запоминание текущего индекса кажется более простым (особенно, поскольку у вас уже есть инструменты в массиве). – Thilo
Мне нужно было использовать структуру данных, и я знаком со связанными списками, однако я не знал, что Java имеет ArrayLists. – FireStorm