Hallo,
ich versuche grade das erste mal ein eigenes TreeModel zu schreiben.
Und zwar schreibe ich gerade eine Linkbibliothek, die die Links in Gruppen sortiert und dann nach Gruppen anzeigen soll.
Das ganze soll dann so aussehen:
#Downloads
**Gruppe1
****Download 1
****Download 2
** Gruppe2
****Download 1
****Download 2
usw...
Nun habe folgende Klassen:
Download (enthält jeweils einen Link; die Klasse speichert Namen, Link, Größe und andere Daten, wobei der Name mit .getName() ausgelesen werden kann)
Gruppen (enthält Namen und bestimmte Einstellungen ** Wichtig hierbei ist: Diese Enthält auch eine ArrayList<Download>, die alle Downloads dieser Gruppe enthält (kann mit getDownloads() geholt werden))
Nun Versuche ich mein TreeModel so zu schreiben, dass ich halt jeweil des Namen der Gruppe und dann dadrunter die Namen der Downloads angezeigt bekomme.
Meine Frage ist nun, reicht dafür ein TreeModel? Oder muss ich mehrere Erstellen die ich dann, ähnlich wie das bei den DefaultModels funktioniert ineinander schichte? (siehe Beispiel)
Oder habe ich die Möglichkeit das in ein TreeModel zu fassen? Bisher blieb ich jedoch nicht sehr erfolgreich.
Ich habe mal daran gedacht folgendes zu basteln:
Wie gesagt, das ist das erste Mal, dass ich mit diesem TreeModels arbeite (Vielleicht hab ich die auch noch nicht richtig verstanden).
Für Tipps bin ich gerne offen und bedanke mich schon mal im vorraus!
Viele Grüße
Michael
ich versuche grade das erste mal ein eigenes TreeModel zu schreiben.
Und zwar schreibe ich gerade eine Linkbibliothek, die die Links in Gruppen sortiert und dann nach Gruppen anzeigen soll.
Das ganze soll dann so aussehen:
#Downloads
**Gruppe1
****Download 1
****Download 2
** Gruppe2
****Download 1
****Download 2
usw...
Nun habe folgende Klassen:
Download (enthält jeweils einen Link; die Klasse speichert Namen, Link, Größe und andere Daten, wobei der Name mit .getName() ausgelesen werden kann)
Gruppen (enthält Namen und bestimmte Einstellungen ** Wichtig hierbei ist: Diese Enthält auch eine ArrayList<Download>, die alle Downloads dieser Gruppe enthält (kann mit getDownloads() geholt werden))
Nun Versuche ich mein TreeModel so zu schreiben, dass ich halt jeweil des Namen der Gruppe und dann dadrunter die Namen der Downloads angezeigt bekomme.
Meine Frage ist nun, reicht dafür ein TreeModel? Oder muss ich mehrere Erstellen die ich dann, ähnlich wie das bei den DefaultModels funktioniert ineinander schichte? (siehe Beispiel)
Code:
DefaultMutableTreeNode main = new DefaultMutableTreeNode("Downloadkategorien");
for (int x =0; x < groups.size(); x++) {
DefaultMutableTreeNode sub = new DefaultMutableTreeNode(groups.get(x));
ArrayList<Download> daten = groups.get(x).getDownloads();
for (int a = 0; a < daten.size(); a++) {
if (!daten.get(a).isEmpty()) {
DefaultMutableTreeNode sub2 = new DefaultMutableTreeNode(daten.get(a));
sub.add(sub2);
}
}
main.add(sub);
}
Oder habe ich die Möglichkeit das in ein TreeModel zu fassen? Bisher blieb ich jedoch nicht sehr erfolgreich.
Ich habe mal daran gedacht folgendes zu basteln:
Code:
@Override public int getChildCount( Object parent )
{
if (parent instanceof Gruppen)
return ((Gruppen)parent).getDownloads().size();
if (parent instanceof ArrayList<?>)
return ((ArrayList<Gruppen>)parent).size();
return 0;
}
@Override public Object getChild( Object parent, int index )
{
if (parent instanceof Gruppen)
return ((Gruppen)parent).getDownloads().get(index).getName();
if (parent instanceof ArrayList<?>)
return ((ArrayList<Gruppen>)parent).get(index).getName();
return "nichts";
}
Wie gesagt, das ist das erste Mal, dass ich mit diesem TreeModels arbeite (Vielleicht hab ich die auch noch nicht richtig verstanden).
Für Tipps bin ich gerne offen und bedanke mich schon mal im vorraus!
Viele Grüße
Michael