MP3 mit Java - Frage zu JList

Status
Nicht offen für weitere Antworten.
J

Jochen Graul

Gast
Hallo Java-Freunde,

ich schreibe grade einen MP3-Player mit Java, und es läuft ziemlich gut.

Zentrales Element ist eine JList, wo die Lieder drin sind.

Mir gefällt allerdings meine Art der Programmierung selber nicht so richtig.

Wie mit der Hand am Arm selektiere ich - im Fall das ein Lied gelöscht wird - das nächste per list.setSelectIndex().
Bei Zufallssprünge gehe ich auch über den Index. Dabei gibt es doch bei ArrayList die Möglichkeit ein .shuffle zu benutzen.

Aber irgendwie weiß ich nicht richtig, wie ich das am besten machen soll.

Derzeit mache ich es so, daß es zusätzlich zur Jlist, die natürlich ein listmodel enthält, eine HashMap habe.

Warum ? Nunja, der MP3-Player soll keine Pfade der Lieder in der Jlist anzeigen. Will ich sie abspielen, brauch ich aber den Pfad. Somit habe ich eine HashMap, die als Schlüssel den Liednamen und als Wert den Liednamen mit Pfad hat....

Ja...ich weiß...das ist komisch und gefällt mir selber nicht so richtig.
Ich kann auch jetzt den Zufall schlecht unterbringen, weil ja eben die Elemente in der HashMap nicht per Index anfassbar sind.
Vorallem, das ungeschickteste ist, zu überprüfen, ob das Lied das gelöscht werden soll, das letzte in der Liste ist, UND ob der selektionsbalken grade dieses Selektiert. Dann muß nämlich das Lied DAVOR selektiert werden. Steht der Selektionsbalken aber auf dem ERSTEN Lied, muß das Lied DANACH selektiert werden....macht viele unblickbaren if-Abfragen nötig...

Hat mir jemand ein paar Tipps, wie ich das möglichst geschickt programmieren könnte ?

Gruß

Grauli
 

Mentor49

Mitglied
Sind zwar ein paar nervige If-Abfragen, aber ich denke, an den meisten kommste nicht so einafch vorbei.

Aber ist auch nur meine Meinung dazu (;

Lg Chris
 

diggaa1984

Top Contributor
muss denn der balken gesetzt werden? :D bei winamp machen ses zB net, und wenn ich da auf play drück, dann gehts mitm 1. los ^^
 

diggaa1984

Top Contributor
Jochen Graul hat gesagt.:
[..] eine HashMap, die als Schlüssel den Liednamen und als Wert den Liednamen mit Pfad hat.

Ich kann auch jetzt den Zufall schlecht unterbringen, weil ja eben die Elemente in der HashMap nicht per Index anfassbar sind.

aeh das widerspricht sich ein wenig, die werte der Hahsmaps greifst doch über den Key ab, und der würde ja dem Inhalt der Liste entsprechen .. da wäre es ja egal ob die Liste gut sortiert ist, oder nicht.

Jochen Graul hat gesagt.:
Vorallem, das ungeschickteste ist, zu überprüfen, ob das Lied das gelöscht werden soll, das letzte in der Liste ist, UND ob der selektionsbalken grade dieses Selektiert. Dann muß nämlich das Lied DAVOR selektiert werden. Steht der Selektionsbalken aber auf dem ERSTEN Lied, muß das Lied DANACH selektiert werden

wär das nicht sowas wie:

Code:
if (somethingWasSelected) { 
    if (index == 0) {
        setNewIndex(0) //wenn der SelectedIndex überhaupt beim remove verschwindet
    } else { 
        setNewIndex = lastIndex
    }
}

wäre ja nun noch recht überschaubar find ich, so in etwa müsste das ja gehen oder?
 
J

Jochen Graul

Gast
Hab mich nochmal damit beschäftigt und eine Lösung gefunden.

Nur falls es jemand interessiert:

Hab in einem anderen Forum eine selbstgeschriebene Methode gefunden

selectListEntry(JList, Object)

Damit kann ich abhängig vom Object (in meinem Falle Strings, die Liednamen ohne Pfad)
den Eintrag selektieren.

Um es einfach zu sagen: Ich kümmere mich nicht mehr um die Liste an sich, sondern entscheide, welches Lied gespielt wird.
Danach nehme ich obigen Befehl und selektiere einfach !
Wenn ich ein Lied lösche aus listModel, dann wird die Liste ja sowies ohne mein zutun abgedatet. Ich brauche einfach wieder einen neues Lied auswählen (zufällig oder das nächste, je nach Benutzerwunsch) DANNACH die Liste selektiern und schon läuft alles.
Kurz gesagt: Ich bin weg vom Listenorientieren Denken (wann muß ich was selektieren) zum Problem Denken (Welches Lied spiele ich, so seleketire ich auch die Liste)
Weiterhin habe ich eine HashMap, die mir immer übersetzt zwischen Liedname ohne Pfad und Liedname mit Pfad !
Die Klasse listModel, die ich für den Listeninhalt sowieso benötige hat zum Glück Indices, sodaß ich im Zufallsfall auch wieder über geordnete Reihenfolge an die Lieder rankomme !

Das ist jetzt total übersichtlich geworden !
 

Marco13

Top Contributor
Ja, seine "Datenhaltung" in einer GUI-Komponente zu machen kann wirklich ungünstig sein.

Aber so als Randbemerkung, weil dir das vielleicht nicht bewußt ist: In der JList wird (standardmäßig) das angezeigt, was bei einem "toString" der enthaltenen Objekte rauskommt. Du könntest also z.B. sowas machen wie
Code:
class LiedInfo
{
    String pfad;
    String name;

    public String toString() 
    {
        return name;
    }
}
Wenn du solche Objekte dann in die JList packst, erscheint nur der Name. Das Objekt kann man sich aber nach wie vor mit
LiedInfo liedInfo = (LiedInfo)list.getSelectedItem();
holen, und damt bekommt man dann auch den Pfad.

Noch flexibler ist es, wenn man für die JList einen eigenen ListCellRenderer setzt - da kann man sich aussuchen, was angezeigt werden soll - das könnte dann z.B. auch ein JLabel sein, dessen ImageIcon das CD-Cover zeigt oder so....
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
8u3631984 Frage zu Java Streams min / max Allgemeine Java-Themen 17
T Meine Frage lautet wie ich 2 CSV Dateien miteinander in Java verbinde und Spalten die zueinander gehören durch den gleichen Key zusammen ausgebe? Allgemeine Java-Themen 5
L Java frage Allgemeine Java-Themen 3
O Frage zum Runtimeverhalten von Java ... Allgemeine Java-Themen 2
M Allgemeine Frage: Wie lernt man Java / Programmieren von Grund auf? Allgemeine Java-Themen 7
A Methoden Allgemeine Java Frage Allgemeine Java-Themen 3
C J2V8 NodeJs Java Bride Problem und Frage!?!? Allgemeine Java-Themen 1
T Frage zu UML in Java programmieren Allgemeine Java-Themen 1
MTJ004 FTP Frage zu FTP Speicherung Java-Android-FTP Allgemeine Java-Themen 5
J Java Zufallsgenerator (6 aus 49) Frage Allgemeine Java-Themen 7
S Java Design Frage Allgemeine Java-Themen 10
D Classpath Frage zum Java Resource Loading Allgemeine Java-Themen 2
D Frage zu Java und Umlauten / charsets Allgemeine Java-Themen 2
B Frage zu Java und OpenGL? Allgemeine Java-Themen 3
H XML-File mit Java erzeugt Frage Allgemeine Java-Themen 10
H Java Vector Frage Allgemeine Java-Themen 9
H Frage zu java.weka.core.Instances Allgemeine Java-Themen 3
S Frage: Google Maps "Map" in Java Allgemeine Java-Themen 3
R Java Regex Frage Allgemeine Java-Themen 17
J Java-Datei unter Mac OS X öffnen - eine Frage der Klasse Allgemeine Java-Themen 2
T Frage zur Umsetzung in Java Allgemeine Java-Themen 4
S Frage zu verschiedenen Java Projekten Allgemeine Java-Themen 6
F Frage zu JSP / Java Programmierung Allgemeine Java-Themen 2
D Frage zu Java 7 Allgemeine Java-Themen 3
M Java Garbage Collector Frage (Singleton Pattern) Allgemeine Java-Themen 13
X Java 2D Spielfeld-Frage Allgemeine Java-Themen 4
K Frage zum thema Java und Internet Allgemeine Java-Themen 49
H Frage zu Wildcard Eingabe in Java! Allgemeine Java-Themen 5
M Eine Frage über Unit-Tests mit Java Allgemeine Java-Themen 2
S Frage zum Java-Konzept Allgemeine Java-Themen 6
S Frage zu Java und Plattformunabhängigkeit Allgemeine Java-Themen 2
N frage zu java konventionen Allgemeine Java-Themen 10
L Frage zu java.util.regex und Einlesen einer Datei Allgemeine Java-Themen 2
L Blöde Frage: Java für TOS? Allgemeine Java-Themen 6
G Eine Frage zu Java Allgemeine Java-Themen 15
T Frage zu Java-Class/Librarypath Allgemeine Java-Themen 2
S Frage zu jTDS, JAVA allgemein und Timer Allgemeine Java-Themen 6
V Frage zu Umlauten in Java Allgemeine Java-Themen 4
OnDemand Java Deployment Vaadin Allgemeine Java-Themen 3
D Hat Java eine Library um JavaScript auszuwerten? Allgemeine Java-Themen 2
Zrebna Wieso sind eigentlich JUnit-Tests in src/test/java platziert - nur Konvention? Allgemeine Java-Themen 7
N LlaMA, KI, java-llama.cpp Allgemeine Java-Themen 39
V Java-Codierungsherausforderung: Navigieren durch die Macken der Datumsmanipulation Allgemeine Java-Themen 2
E Output Fehler (Java-Programm Kuchen) Allgemeine Java-Themen 11
M java: unexpected type Allgemeine Java-Themen 2
harrytut Java Input/Output Tests Junit Allgemeine Java-Themen 3
B Java Discord bot auf ein Root Server? Allgemeine Java-Themen 1
BetziTheRealOne Java PKIX path building failed as non Admin Allgemeine Java-Themen 15
D Linux, Java-Version wird nicht erkannt bzw. welche Einstellung fehlt noch? Allgemeine Java-Themen 19
KonradN Java 21 Release Allgemeine Java-Themen 5
V Umgang mit fehlenden Daten in einer Java-Datenanalyseanwendung Allgemeine Java-Themen 5
P Fehler: Hauptklasse Main konnte nicht gefunden oder geladen werden Ursache: java.lang.ClassNotFoundException: Main Allgemeine Java-Themen 24
K Java Anwendung machen Anleitung Allgemeine Java-Themen 5
G java.io.listFiles() Allgemeine Java-Themen 3
S Java Programm lässt sich vom USB-Stick starten, aber nicht von HDD Allgemeine Java-Themen 16
K Java-Projekt Allgemeine Java-Themen 11
K Java-Projekt Allgemeine Java-Themen 0
ruutaiokwu Welcher Browser unterstützt heutzutage noch Java Applets? Allgemeine Java-Themen 5
Jose05 Java-Klasse im extra cmd-Fenster ausführen Allgemeine Java-Themen 3
rode45e Java Threads Allgemeine Java-Themen 4
G java.io.listFiles() Allgemeine Java-Themen 2
N Java Dynamic Proxy Allgemeine Java-Themen 3
N Leichte Java Gegner Ki Allgemeine Java-Themen 10
A Java modul Problem Allgemeine Java-Themen 4
Thomasneuling Java Jar datei erstellen, von Projekt, dass auch Javafx Dateien, FXML Dateien und CSS Dateien, sowie Bilder enthält? Allgemeine Java-Themen 14
V Funktionale Schnittstelle in Java Allgemeine Java-Themen 3
OnDemand Java String in Hashmap als Key NULL Allgemeine Java-Themen 27
urmelausdemeis Exception in thread "main" java.lang.Error: Unresolved compilation problem: Allgemeine Java-Themen 7
berserkerdq2 Wenn ich bei Intelij javafx mit maven importieren will, muss ich das in die pom.xml reintun, aber warum noch in module-info.java? Allgemeine Java-Themen 3
KonradN Java 20 am 21. März Allgemeine Java-Themen 1
O Java Website Stock Bot Allgemeine Java-Themen 3
J Front-/Backend in Java Allgemeine Java-Themen 14
doopexxx JAVA Google Webcrawler Allgemeine Java-Themen 1
J JavaScript innerhalb eines Java Projekts ausführen Allgemeine Java-Themen 2
A Java Programm erstellen hilfe Allgemeine Java-Themen 10
G java.lang.NoClassDefFoundError: org/aspectj/lang/Signature Allgemeine Java-Themen 2
lalex1491 Java Aktienkurse nachfragen Allgemeine Java-Themen 4
J Class to link Java Allgemeine Java-Themen 4
V Wie funktioniert das Schlüsselwort "final" von Java? Allgemeine Java-Themen 19
mrStudent Inferenz JAVA Allgemeine Java-Themen 6
U URI Rechner (Java Script) Allgemeine Java-Themen 7
TheSkyRider Java Geburtsdatum Textfeld Allgemeine Java-Themen 7
mihe7 Java 19 JavaDocs: Browserintegration Allgemeine Java-Themen 0
Encera Gleichzeitiges Ausführen und verbinden von 2 Java-Klassen über die Eingabeaufforderung und Eclipse Allgemeine Java-Themen 21
H Java Rechner Programmierung der Mathematik Allgemeine Java-Themen 33
Lennox Schinkel Java Kara Auf einen Java Host laufen lassen Allgemeine Java-Themen 17
C Fußnoten von DocX mit Java Allgemeine Java-Themen 2
C Fußnoten in DocX mit Java Allgemeine Java-Themen 1
M Aussagenlogik in Java Programmieren Allgemeine Java-Themen 22
B Per Java Word Dokument schreiben? Allgemeine Java-Themen 8
krgewb Java-Bibliothek für ONVIF Allgemeine Java-Themen 1
KonradN Oracle übergibt (Java Teile der) GraalVM Community Edition an OpenJDK Community Allgemeine Java-Themen 2
Momo16 Brauche Hilfe - Java Projekt kann nicht erstellt werden Allgemeine Java-Themen 12
B Java mit command line und jars benutzen? Allgemeine Java-Themen 18
M Java Überprüfen ob .exe-Datei bereits ausgeführt wird Allgemeine Java-Themen 2
B HTTP Allgemeine Fragen über Suchmaschine nutzen mit Java Allgemeine Java-Themen 20
Mick P. F. Wie kriege ich die Fehlermeldung "java: symbol lookup error: ..." weg? Allgemeine Java-Themen 11
K Nachhilfe Java Allgemeine Java-Themen 11
KonradN Java 19 Allgemeine Java-Themen 11
F IDEA IntelliJ Java Songliste erstellen Allgemeine Java-Themen 6

Ähnliche Java Themen

Neue Themen


Oben