JTree aus einer ArrayList

Status
Nicht offen für weitere Antworten.
R

Rohrreiniger

Gast
Hallo,

ich habe mich gefragt, ob es eine elegante Möglichkeit gibt aus einer ArrayList einen JTree zu konstruieren. Ich würde jetzt spontan jedes Objekt in einer ArrayList durchlaufen, nachschauen ob es selbst eine ArrayList mit Inhalt besitzt und diese dann iterativ zu einem Baum zusammenfügen.
Für bessere Vorschläge bin ich jedenfalls jetzt schon vielmals dankbar ...

Gruß Tobias
 

AlArenal

Top Contributor
Hängt ganz von deinen Daten ab. Trenn dich vor der Vorstellung, dass Daten immer nur in einer einzelnen Datenstruktur stecken können.

Wenn ich es richtig verstehe, hast du Daten in einer ArrayList und wenn ein Datum ebenfalls eine ArrayList ist, ist es ein Zweig? Hört sich halbwegs nach Muckefuck (nicht wirklich objektorientiert) an, da der Zweig ja selbst keine Eigenschaften hätte, außer seinen Kindern und du nachträglich nichts ändern kannst.

Grundsätzlich kannst du das TreeModel natürlich so aufbauen, wie du selbst schon grob umrissen hast. Was mir nicht ganz klar ist, ist der Satzteil "nachschauen ob es selbst eine ArrayList mit Inhalt besitzt und diese dann iterativ zu einem Baum zusammenfügen". Ein TreeModel funzt ja nicht so, dass du Daten irgendwie ummodeln müsstest, sondern du hinterlegst darin nur bestimmte erforderliche Funktionalität um Daten zu untersuchen.

Viel eleganter ist es natürlich in einem Model mit Objekten arbeiten zu können, die mehr "Eigenintelligenz" haben als ne ArrayList. Vielleicht kannste mal grob umreißen was für Daten in der ArrayList stehen sollen und was für Klassen du verwendest.
 
G

Guest

Gast
als beispiel für meine ArrayList benutze ich Unternehmensobjekte, die entweder Abteilungen oder aber auch einzelne Stellen sein können. Ich speichere dann die Abt, die eine ArrayList innehält. Es kann allerdings sein, dass die Abt weitere Unterabteilungen besitzt, die wiederum selbst eine ArrayList besitzen oder aber auf der Abt-Hierarchie ganz unten stehen und nur noch Personal aufnehmen. Das Personal wiederum kann keine Elemente bestehen und ist aus diesem Grund ohne ArrayList.
 

AlArenal

Top Contributor
OK, wir reden also von einem Organigramm. So ein Zufall, dass ich gerade ein Tool zum Aufbau von Organigrammen entwickle..

Bei mir siehts grob gesagt so aus:
- Ich habe eine Klasse Unit, die eine Organisationseinheit repräsentiert.
- Alles im Organigramm ist eine Unit.
- Eine Unit kennt ihre übergeordnete Unit, die untergeordneten Units (intern über List implementiert).. und noch der Reihenfolge wegen die vorgelagerte und nachfolgende Unit, was hier aber erstmal ohne Balng sein soll.

Das wars im Grunde schon. Bei der Instanziierung des TreeModel wird die Root-Unit übergeben. Diese hat logischerweise keinen Parent (null) und wenn man nicht mehrere Organigramme in einem Tree darstellt, auch keinen Vorgänger und Nachfolger (auch beide null), und eben eine Reihe von [0 .. x] Unter-Units. Deren Anzahl ist bekannt, die Units selbst sind auch bekannt - schwupps lässt sich das ganze TreeModel ganz einfach über Aufrufe von Unit-Methoden aufbauen.
Da hab ich kein Gefuckel mit ArrayList oder sonst irgendwelchem Zeug.
 

AlArenal

Top Contributor
P.S.:
Personal wird bei mir über ne Klasse Personnel abgebildet. Jede Unit kann beliebig viele Personnel-Instanzen abbekommen, die Abbildung erfolgt aber separat in einer Table, der Übersicht halber. Zusätzlich gibts noch ne Graph-Visualisierung des Org-Charts über eine GraphLib, diei per Adapter am TreeModel angehängt ist.
 

SamHotte

Top Contributor
Anonymous hat gesagt.:
als beispiel für meine ArrayList benutze ich Unternehmensobjekte, die entweder Abteilungen oder aber auch einzelne Stellen sein können. Ich speichere dann die Abt, die eine ArrayList innehält. Es kann allerdings sein, dass die Abt weitere Unterabteilungen besitzt, die wiederum selbst eine ArrayList besitzen oder aber auf der Abt-Hierarchie ganz unten stehen und nur noch Personal aufnehmen. Das Personal wiederum kann keine Elemente bestehen und ist aus diesem Grund ohne ArrayList.

Anscheinend hast Du noch nicht sauber objektorientiert modelliert. Was soll denn in der ArrayList gespeichert werden? Abteilungen? Stellen? Mitarbeiter?
 
R

Rohrreiniger

Gast
Hallo Hotte,

sauber objektorientiert zu programmieren ist so 'ne Sache. Hierfür ist viel an Erfahrung nötig und auch ein fundiertes Wissen über die OOA/OOD notwendig, was vielleicht nicht jedermann von sich behaupten kann, so zumindestens ich. Was Deine Frage angeht: es gibt diverse Objekte, die von den Klassen Abteilung, bzw. Personal instanziiert sind.

Gruß
 

SamHotte

Top Contributor
Ist halt wie beim Haus bauen - ohne vorher zu zeichnen, wird's entweder schief oder stürzt ein ;)

Ohne viel nachzudenken würde ich mal annehmen, dass Du folgende Typen brauchst:

- Mitarbeiter
- Stelle
- OE (Org.-Einheit)

mit den Beziehungen
- Stelle : Mitarbeiter (1 : 0..1)
- OE : Stelle (1 : 1..n)

(wobei Du natürlich die Stellen weglassen kannst)

Die OEs sind dann hierarchisch organisiert, d.H. du brauchst in jeder OE Informationen über den "Vater" sowie eine Liste der Kinder (kann leer sein). Eine zweite Liste kann die Stellen bzw. Mitarbeiter in der OE abbilden.
 
R

Rohrreiniger

Gast
Hi,

ich hätte jetzt intuitiv, aber wohl überlegt auch noch eine weitere Klasse 'StellenPositionszuordnung' angelegt. Da ich die Klassen derlei gestalte, dass sie möglichst der wahren Umgebung nah kommen. Das bedeutet wiederum, dass einer Person keine Stelle zugeordnet wird, sondern nur die typischen Eigenschaften wie Name, Vorname, etc.
Ok, aber ich denke Du weißt worauf ich hinaus will - eine weitere Klasse die die Verbindung zwischen dem Mitarbeiter und der Stelle herstellt. Aber das tut ja jetzt nicht zur Sache ...

Aber ich hätte jetzt trotzdem noch eine Frage. Und zware, wie kann ich denn durch die Objekte am geschicktesten durchlaufen um irgendwas zusammenzuzählen, wenn ich vorher gar nicht weiß wieviele Stufen ich durchlaufen muss. Eine Schleife nach

Code:
for (int i = 0; i < unternehmenseinheit.size(); i++) {
  for (...) // Hier fängt es ja theoretisch an im dunklen zu stochern
  ...
}

CU
 

AlArenal

Top Contributor
Da musst du doch - entsprechendendes Design vorausgesetzt - nicht "im Dunklen stochern". Wenn jede OE die oben von Sam und mir beschrieben Funktionalitäten hat, fragst du doch direkt bei der Instanz an, um zu erfahren wieviele Untereinheiten sie hat, o.ä.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Erste Schritte JTree: Instanzen einer Klasse speichern oder Namen/Strings... Java Basics - Anfänger-Themen 4
G Erstellten JTree aus einer XML-Datei akktualisieren Java Basics - Anfänger-Themen 11
G JTree speichern und wieder einlesen Java Basics - Anfänger-Themen 5
C Unbekannte Methode add bei Klasse die JTree erweitert Java Basics - Anfänger-Themen 14
J ActionListener von JCheckBox im Knoten von JTree funktioniert nicht Java Basics - Anfänger-Themen 2
F Jtree kürzt Namen auf ... Java Basics - Anfänger-Themen 4
H Collections JTree remove zeigt keinen Effekt! Java Basics - Anfänger-Themen 8
H Best Practice Wo wird der rootNode eines JTree gespeichert... Java Basics - Anfänger-Themen 0
R JTree bewegen Java Basics - Anfänger-Themen 6
I JTree, Root-Name ändern Java Basics - Anfänger-Themen 4
N Dynamisch JTree erstellen Java Basics - Anfänger-Themen 3
G bestimmte dateiendungen in jtree rausfiltern Java Basics - Anfänger-Themen 7
P JTree aus txt Java Basics - Anfänger-Themen 8
M Warum wird mein Icon bei den JTree Nodes nicht angezeigt? Java Basics - Anfänger-Themen 7
JStickman JTree, JScrollPane, Liste mit graphischer Suchleiste - Dateimanager Java Basics - Anfänger-Themen 10
M JTree + JTab Java Basics - Anfänger-Themen 3
T JTree füllen Java Basics - Anfänger-Themen 3
B JTree knoten wird nicht übernommen Java Basics - Anfänger-Themen 4
S JTree Hilfe Java Basics - Anfänger-Themen 6
P Jtree MouseListener und NoCollapse Java Basics - Anfänger-Themen 2
M JTree ohne root anzeigen Java Basics - Anfänger-Themen 5
F JTree mit JSpinner Java Basics - Anfänger-Themen 2
I Liste von Dateien anzeigen/JTree Java Basics - Anfänger-Themen 4
G Zugriff auf JTree-Objekt Java Basics - Anfänger-Themen 2
K Problem: JTree mit integrierten JCheckboxen Java Basics - Anfänger-Themen 5
B OOP Jtree aus TreeMap<String, String[]> erstellen? Java Basics - Anfänger-Themen 6
D JTree ich dreh durch :D Java Basics - Anfänger-Themen 2
T JTree root setzten Java Basics - Anfänger-Themen 13
G xml Datei in JTree Java Basics - Anfänger-Themen 2
S JTree, Problem mit View Update Java Basics - Anfänger-Themen 2
R Problem mit JTree und JTable Java Basics - Anfänger-Themen 16
A JTree drucken Java Basics - Anfänger-Themen 2
M JTree und ein Button mit ActionListener Java Basics - Anfänger-Themen 3
G Verständnisproblem --> JTree Java Basics - Anfänger-Themen 6
G Filesystem in JTree anzeigen Java Basics - Anfänger-Themen 4
A Jtree Aufbau Java Basics - Anfänger-Themen 5
G JTree ilstener Java Basics - Anfänger-Themen 3
G JTree Java Basics - Anfänger-Themen 2
S jTree initialisierung Java Basics - Anfänger-Themen 4
F Doppelklick-Event auf JTree Java Basics - Anfänger-Themen 5
J ArrayListen mit Name und Vater an JTree übergeben Java Basics - Anfänger-Themen 3
G aussehen vom jtree wiederherstellen Java Basics - Anfänger-Themen 3
P JTree mit mehreren Wurzeln Java Basics - Anfänger-Themen 2
G Umbenennen im JTree Java Basics - Anfänger-Themen 5
G rechter Mausklick im JTree Java Basics - Anfänger-Themen 2
G Bilder im jTree Java Basics - Anfänger-Themen 3
G jTree Pfad merken Java Basics - Anfänger-Themen 2
S JTree aktualisieren Java Basics - Anfänger-Themen 4
M JTree aktualisieren Java Basics - Anfänger-Themen 3
E JTree - Element suchen Java Basics - Anfänger-Themen 5
G JTree Problem. Java Basics - Anfänger-Themen 5
G JTree Java Basics - Anfänger-Themen 2
E JTree - Verzeichnisbaum Java Basics - Anfänger-Themen 3
G JTree Frage Java Basics - Anfänger-Themen 5
G Ebene von JTree ermitteln? Java Basics - Anfänger-Themen 6
G Icons für JTree skalieren? Java Basics - Anfänger-Themen 3
G Standard JTree ausblenden? Java Basics - Anfänger-Themen 5
B JTree mit Verzeichnissen füllen Java Basics - Anfänger-Themen 17
G Object vor reload von JTree merken und danach wieder setzen? Java Basics - Anfänger-Themen 5
P Wert aus JTree in ComboBox setzen? Java Basics - Anfänger-Themen 2
G Problem mit Refresh von JTree Java Basics - Anfänger-Themen 11
lomtas Scrollbalken für JTree Java Basics - Anfänger-Themen 3
lomtas JTree Struktur im Nachhinein ändern Java Basics - Anfänger-Themen 2
K JTree verlinken Java Basics - Anfänger-Themen 3
T ArrayList mit Dateien in die richtigen Ordner eines JTree Java Basics - Anfänger-Themen 16
K JTree aus DB rekursiv füllen Java Basics - Anfänger-Themen 12
M Dateisystem in Jtree - Ordnericon darstellen Java Basics - Anfänger-Themen 4
G JTree vollständigen pfad anzeigen Java Basics - Anfänger-Themen 11
J JTree Bilder Java Basics - Anfänger-Themen 2
G JTree.TreeListener Java Basics - Anfänger-Themen 12
S JTree valueChanged() Ausgabe leider immer mit Pfadangabe! Java Basics - Anfänger-Themen 4
S JTree aktualisieren bzw. komplett neu aufbauen Java Basics - Anfänger-Themen 6
G Scrollen im JTree Java Basics - Anfänger-Themen 17
G Hintergrundsfarbe für JTree Java Basics - Anfänger-Themen 15
F JTree-Knoten (DefaultMutableTreeNode) formatieren ? Java Basics - Anfänger-Themen 3
Y JTree: ein Knoten als Objekt Java Basics - Anfänger-Themen 2
J JTable / JTree: Unsichtbare Elemente Java Basics - Anfänger-Themen 4
G JTree Explorer Problem mit listRoots() Java Basics - Anfänger-Themen 9
V Jtree: Alle Verzeichnisse und Ordner anzeigen, aber wie? Java Basics - Anfänger-Themen 2
M Ausgabe einer ArrayList ensteht nur als Hashcode, nicht als Objekt Java Basics - Anfänger-Themen 16
D 2 ArrayListen gleich sortieren bzw. eine Liste anhand einer anderen Sortieren Java Basics - Anfänger-Themen 6
ixChronos Letzten 4 Ziffern einer großen Zahl ausgeben Java Basics - Anfänger-Themen 3
P Objekt einer Methode eines anderen Objektes übergeben Java Basics - Anfänger-Themen 5
L Variablenwerte aus einer Methode übergeben Java Basics - Anfänger-Themen 2
E Arrays in einer ArrayList miteinander vergleichen Java Basics - Anfänger-Themen 12
Simon16 Java ArrayListe von einer Klasse sortieren Java Basics - Anfänger-Themen 2
Shadowrunner Variablen Gibt es eine Möglichkeit die Ziffern/Stellen einer Zahl fest zu legen? Java Basics - Anfänger-Themen 3
D remove Object von einer Liste von Obejcts Java Basics - Anfänger-Themen 3
FunkyPhil94 Wert in einer Lambda Funktion erhöhen Java Basics - Anfänger-Themen 3
T Aufruf der Methode einer Oberklasse, wenn sie in der Unterklasse überschrieben ist. Polymorphie. Java Basics - Anfänger-Themen 2
B Kommunikation mit Seriellen Schnittstellen + Integration einer lib Java Basics - Anfänger-Themen 1
A Daten aus einer HashMap aus einer DB speichern und mit neuen Werten vergleichen Java Basics - Anfänger-Themen 8
P Welches SDK für das erstellen einer ausführbaren Datei? Java Basics - Anfänger-Themen 4
D Länge einer Liste aufrufen. Java Basics - Anfänger-Themen 19
J Klassen Instanzen einer Klasse in einer anderen unabhängigen Klasse nutzen Java Basics - Anfänger-Themen 4
B Alle Strings bis zu einer Maimallänge aufzählen, die Bedingung erfüllen Java Basics - Anfänger-Themen 13
marcelnedza Finde meinen Fehler in einer Methode nicht, Java Karol Java Basics - Anfänger-Themen 15
Soranix Erste Schritte Struktur als Anfänger // Von einer Klasse auf ein Objekt einer anderen Klasse zugreifen. Java Basics - Anfänger-Themen 6
MoxMorris Wie macht man String[] = String[] aus einer anderer Methode? Java Basics - Anfänger-Themen 18
T Fibonacci mit einer Hilfsmethode berechnen Java Basics - Anfänger-Themen 10

Ähnliche Java Themen

Neue Themen


Oben