Jetzt aber brauch ich wirklich Hilfe, hab ein ganz komisches Problem
Ich hab die oben genannte Methode benutzt, um in meiner Liste das gerade abgespielte zu markieren, so und das klappt jetzt nicht.
Parameter waren die variable, die das Lied enthält sowie true.
Wenn ich dann aber starte, markiert er zwar das momentane Lied, aber macht die Liste total kaputt.
Hier maln Screen, wenn die Zeile auskommentiert ist:
http://puu.sh/4bDcs.png
Wenn ich sie nun jedoch wieder reinmache, schauts so aus:
http://puu.sh/4bDia.png
Man sieht an der Seite schon an der Scrollbar, warum da soviel Platz ist, wenn ich nun mit der Maus das nächste Lied anklicke, nach ewigem runterscrollen, oder er einfach aufs nächste Lied geht, schauts so aus:
http://puu.sh/4bDo5.png
Das ist bei insgesamt 4 Liedern, zwischendrin sind immer mal wieder welche zusammen, (http://puu.sh/4bDyz.png) bzw einige sind sogar garnicht mehr visuell wiederauffindbar, auch wenn sie abgespielt werden und auch angezeigt werden (oben bei momentanes Lied und unten die Länge). (Gerade läuft zum Beispiel eines, das ich nicht in der Liste finde…)
Hat jemand ne Idee, warum das so ist? Ich hab mal völlig keine Ahnung und logisch erklären lässt sich das mir auch nicht…
*** Edit ***
Warum kann ich nicht mehr bearbeiten?^^
Egal, hier mal die CodeZeile oben:
MusikPlayer.getINSTANCE().getMusikDateienListe().setSelectedValue(audioFile, true);
Wenn ich es über den Index mache mit dieses Zeile:
MusikPlayer.getINSTANCE().getMusikDateienListe().setSelectedIndex(MusikPlayer.getINSTANCE().getListModel().indexOf(audioFile));
schauts so aus:
http://puu.sh/4bHrW.png
Alsi hier ist alles gut, bis auf das letzte Lied, das wieder so verbuggt ist und eines zwischendrin, das nur halb zu sehen ist. Das war meine letzte Vermutung, das ganze iwie zu lösen…
PS: get MusikDateinenListe() gibt die Liste zurück und getListModel() das dazugehörige Model, falls wer fragen sollte.
Edit2: Aha, bearbeiten konnte ich nicht, aber nach nem Doppelpost wird automatisch editiert und ich kann wieder? Muss man nicht verstehen^^
*** Edit ***
So, aber ich hab ne andere Methode geschrieben, für nen „nächstes Lied“ Button. Da schauts so aus:
index = musikDateienListe.getSelectedIndex() + 1;
musikDateienListe.setSelectedIndex(index);
File file = (File) listModel.get(index);
Musik.getINSTANCE().setCanceled(false);
ListThread.getINSTANCE().setAudioFile(file);
ListThread.getINSTANCE().init();```
Und da ist die Liste korrekt und sobald ich auf ein Lied Doppelklicke, wird es auch abgespielt. Drück ich jetzt auf den Button spielt er das nächste Lied ab UND markiert dementsprechend das nächste.... Wenn ich dann aber sowas mache:
```public void setCurrentSongSelected(File audioFile) {
index = listModel.indexOf(audioFile);
musikDateienListe.setSelectedIndex(index);
}```
bzw. So, wenn es von der Liste ausgewählt wurde, ist der Parameter true, sonst false:
``` public void setCurrentSongSelected(boolean list) {
if (list) {
index = musikDateienListe.getSelectedIndex();
System.out.println(index);
musikDateienListe.setSelectedIndex(index);
} else {
musikDateienListe.setSelectedIndex(0);
}
}```
Wenn ich dann von außen mit
```MusikPlayer.getINSTANCE().setCurrentSongSelected(false);``` Darauf zugreife, zerhackts mir wieder die Liste, ich bin echt ratlos Leute...