Ich habe ein Problem mit dieser Methode. Un zwar hab ich eine Liste auf File-Objekten. Das sind audio-Dateien. Ich lese in einer Schleife diese Objekte ein, ermittel den Titel und den Interpreten und füge das dann der Liste hinzu : “Titel - Interpret”. So nun habe ich aber ein Problem.
Ich füge die Dateinamen der Lieder hinzu, wo kein Titel vorhanden is
Ich habe die Liste vorher mit nem button sortiert, das funktioniert auch weiterhin. Nur ist diesmal das Problem, das zwar die dateien alphabetisch sortiert werden, die ich nicht umbenannt habe, aber die die ich umbenannt habe, nicht. Also ganz oben sind meine umbenannten in willkürlicher Reihenfolge und untendrunter dann die nicht umbenannten alphabetisch Hier der ausschnitt wo das ganze passiert:
Object[] al = getAnzeigeModel().toArray();
Object[] f = getListModel().toArray();
List l = Arrays.asList(al);
List all = Arrays.asList(f);
if (sort) {
Collections.sort(l);
Collections.sort(all);
} else {
Collections.shuffle(l);
Collections.shuffle(all);
}
getListModel().clear();
getAnzeigeModel().clear();
for (Object o : f) {
File op = (File) o;
getListModel().addElement(op);
Map properties = null;
try {
properties = new MpegAudioFileReader().getAudioFileFormat(op).properties();
} catch (UnsupportedAudioFileException | IOException ex) {
System.err.println(op + " ist keine gültige Audiodatei!");
}
if (properties != null) {
Object title = properties.get("title");
Object interpret = properties.get("author");
if (title == null || title.equals("") || interpret == null || interpret.equals("")) {
getAnzeigeModel().addElement(op.getName());
} else {
getAnzeigeModel().addElement(title + " - " + interpret);
}
} else {
getAnzeigeModel().addElement(op.getName());
}
if (sort) {
Collections.sort(l);
}
}
playList();```
Hab das sort nochmal ans ende gepackt, gleiches ergebnis.
Zur Info: "anzeigeModel" Ist das was angezeigt wird und "listmodel" das mit dem intern gearbeitet wird.
Mach ich irgendwas falsch?