Play dude konzept
Programumfang:
Single Click auf Buchstaben à Alle Interpreten öffnen sich bzw. Alben oder Titel
Double Click auf Interpreten à alle Lieder die in dem Knoten enthalten sind werden zur Wiedergabeliste hinzugefügt. Das gleiche gilt für die Alben und den Titel
Rechtsklick auf den Interpreten:

Popup:
Hinzufuegen: Mit dem Button „Browse“ wird ein FileChooser aufgerufen damit kann man entweder ein ganze Directory auswählen oder eine einzelne Datei. Bei einem Directory kann mithilfe von dir.listFiles() auf alle Files zu gegriffen werden.
Der Button „File“ ist nur wenn man mit einem FileChooser nicht Dateien und Directorys auswählen kann.
Umbenennen/Entfernen:
Ändert den Interpreten für den ganzen Ast bzw. entfernt den ganzen Ast. Bei Album und Titel öffnet sich ein Popup:

Statt dem Label Audiothek Suchergebnisse. Ergebnisse werden im Jtree dargestellt, allerdings schon aufgeklappt.
Bei Rechtsklick Popup mit entfernen.
Mehrfachauswahl der Titel möglich
Doppelklick auf einen Titel setzt Wiedergabeliste dort fort.
Bekommt eine JTree vom Main um die Audiothek zu verwalten und bekommt einen JTabel für die Wiedergabeliste.
Folgende Aktionen des Benutzers werden dem Main mitgeteilt weitergegeben:
Aktionname braucht
Eigenschaften_aendern LiedID,Titel,Interpret,Album,Genr
Entfernen LiedID
Wiedergeben LiedID
Direkte_wiedergabe LiedID
Hinzufuegen LiedID,Titel,Interpret,Album,Genr
Pausieren
Stopp
such_anfrage Suchanfrage
String[] Suchen(Titel, Interpret, Album, Genre)
String[] Hohlen(LiedID)
Hinzufuegen(LiedID, Titel, Interpret, Album, Genre,url)
Entfernen(LiedID)
Aendern(LiedID, Titel, Interpret, Album, Genre,url)
|
# LiedID |
INTEGER |
|
Titel |
VARCHAR |
|
Interpret |
VARCHAR |
|
Album |
INTEGER |
|
Genre |
VARCHAR |
|
URL |
VARCHAR |
S
1::Incinerate::Sonic Youth::30:26::Alternative::D\\Musik\\Incinerate.mp3
2::Kool Thing::Sonic Youth::Goo::Alternative::D:\\Musik\\Incinerate.mp3
Funktionen: laden
Play
Pause
Resume
![]() |
Aktionname: String
LiedID: Integer
Suchanfrage: String
Titel: String
Interpret: String
Album: String
Genre: String
Es muss nicht für jede Aktion jedes Feld ausgefüllt sein.
Funktionsweise: Die Klasse wird im Main erstellt und dann an den Konstruktor der Klassen Logik und GUI übergeben. Dadurch das alle Variablen public sind können die Klassen Logik und GUI der Klasse Main mitteilen wenn sie eine Aktion durchführen wollen, in dem sie die Variable Aktionname ändern und den Rest mit den benötigten Daten füllen. Die Klasse Main übernimmt die Zusammenarbeit der beiden Klassen.
Suchen: Bekommt einen String z.B. ‚kool thing::t’. Je nachdem was nach den 2 Doppelpunkten kommt wird entweder nach Interpreten(i), Titel(t), Alben(a) oder Genres(g) gesucht und sortiert. Der Suchbegriff steht vor den 2 Doppelpunkten.
Die Funktion gibt einen Jtree zurück.
Audiothek erstellen:
Liest mithilfe von Datenzugriff. Schickt fertigen JTree an die GUI
und refresht diese.
Aktion(Aktion akt):
Ruft je nach dem wie der Aktionsname ist die entsprechende Funktion
auf.
Eigenschaften_aendern(Aktion akt)
Entfernen(Aktion akt)
Wiedergeben(Aktion akt): startet die Wiedergabe wenn noch kein Lied
vorhanden ist und erstellt eine wiedergabe liste wenn schon eins vorhanden
Ist wird es nur angehängt. Merkt sich welchen Titel es gerade abspielt um den dann zu pausieren oder zu stoppen.
Exception: UnsopportedAudioFormat()
Direkt_wiedergeben(Aktion kat):
Sucht den Titel in der Wiedergabeliste und gibt ihn wieder.
Pausieren
Stopp
such_anfrage(Aktion akt): sucht alle titel und gibt einen JTree zurück
Jtree in so ein Jpanel reingeben wie beim bild
