Suche TreeTable-Komponente

Status
Nicht offen für weitere Antworten.

Alloc

Mitglied
Hi,

ich bin zur Zeit auf der Suche nach einer geeigneten Komponente für ein Projekt. Und zwar bräuchte ich eine TreeTable (ja, davon hab ich schon einige angeschaut), die Zellen verbinden kann. Ich habe eine einfache Struktur mit zwei Ebenen, bei der in der oberen Eben nur ein längerer Name steht und in der zweiten Ebene sind dann zu dem jeweiligen Namen einige Dokumente gelistet, die verschiedene Eigenschaften haben (zB Seitenanzahl, Jahr, Datum ...). Wenn ich nun in der oberen Ebene für den Namen einfach nur die erste Spalte hernehme, die ich auch in der zweiten Ebene verwende, dann müsste ich entweder die erste Spalte seeeehr breit machen, damit alles reinpasst, wodurch in der zweiten Ebene die erste Spalte nur zu einem Bruchteil genutzt würde und der Rest sehr weit rausgeschoben wird. Oder die erste Spalte sehr schmal, so dass es in der zweiten Ebene passt, dann würde aber sehr viel von den Namen abgeschnitten ;(

Wenn ich nun einen TreeTable hätte, welcher in der ersten Ebene nur eine Spalte hat und in der zweiten entsprechend mehr (geht wohl gegen 10 - 15), dann wäre das Problem erschlagen. Allerdings hab ich bis jetzt nur eine Komponente gefunden (zB Hierarchical Table von JIDE Software), die das könnte, welche ich allerdings nicht nutzen kann, da diese kostenpflichtig ist und ich das Programm in meiner Freizeit für einen gemeinnützigen Verein entwickel.

Genau genommen muss es auch nicht zwangsweise ein TreeTable sein, aber irgendwie eine komfortable Möglichkeit, diese Hierarchie zu realisieren =)
Vielleicht hat hier ja jemand Ideen bzw kennt solche Komponenten.

Grüße,
Chris
 

Alloc

Mitglied
Hi André,

danke erstmal für die Antwort, das sieht soweit erstmal nicht schlecht aus. Vor allem durch die Klasse UIMultiSpan. Allerdings ist die "Dokumentation" doch etwas spärlich ;)
Gibt es dafür zufällig irgendwo weitere Infos?

Ansonsten muss ich das wohl einfach mal der Reihe nach durchprobieren. Wie man allerdings Code mit 0 Zeilen JavaDoc schreiben kann ist mir eigentlich schleierhaft :bahnhof:

Grüße,
Chris
 

Alloc

Mitglied
Bin leider kommentarfaul, das sollte ich wirklich ändern.
Ach, ist von dir ... :oops:
Aber ich kenn das Problem ... seit ich aber das Projekt in Java mach hab ich einfach in Eclipse in den Regeln eingestellt, dass er mir Warnungen spucken soll, wenn irgendwo bei ner Klassendef oder ner Public-Methode der JavaDoc-Kommentar fehlt, das hilft dann, wenn man immer drauf aus ist, möglichst keine Warnings zu produzieren :D

Grüße,
Chris
 

Alloc

Mitglied
Hi André,

habe mir gerade mal den Code von dir runtergeladen und das Testprog ausgeführt. Was mir noch nicht so ganz klar ist, ist wo was gemacht wird (vor allem, da da Beispielcode vermischt ist mit dem Code der Komponenten). Außerdem sieht das für mich so aus, als ob die erste Spalte eine feste Breite hat (durchgehend durch alle Zeilen, im Beispielprog die Spalte mit "Welt", "Europa", etc). Ich will ja, dass genau dies nicht der Fall ist, da eben speziell diese erste Spalte sehr umfangreich werden wird in der ersten Baumebene ;)
Naja, ich schaus mir wohl die Tage nochmal an und ansonsten muss ich mir wohl was zusammenstückeln, eventuell brauch ich ja auch nur den MultiSpan-Code zu klauen und auf eine andere TreeTable zu portieren :D

Grüße,
Chris
 

André Uhres

Top Contributor
Was mir noch nicht so ganz klar ist, ist wo was gemacht wird (vor allem, da da Beispielcode vermischt ist mit dem Code der Komponenten). Außerdem sieht das für mich so aus, als ob die erste Spalte eine feste Breite hat (durchgehend durch alle Zeilen, im Beispielprog die Spalte mit "Welt", "Europa", etc). Ich will ja, dass genau dies nicht der Fall ist, da eben speziell diese erste Spalte sehr umfangreich werden wird in der ersten Baumebene
Chris, das war so gedacht, daß in der ersten Spalte (JTree) die Kurzbezeichnung steht und in der zweiten Spalte die vollständige Bezeichnung. Die erste Spalte gehört zwar nicht zur JTable, aber man kann sie trotzdem in der Breite verändern, indem man den Divider vom Splitpane verschiebt.

Man kann sicherlich noch einiges verbessern, aber ich denke, der Code ist ziemlich übersichtlich gegliedert, und die Methodennamen (sowie andere Namen) sind meisten selbsterklärend. Hier einige zusätzliche Bemerkungen:

"Table" ordnet die Renderer den entsprechenden Datentypen zu. Man kann weitere Render vorsehen,
wenn man will. Dort ist auch die Methode "shouldCombineCells", die wir gegebenenfalls anpassen
müssen. Sie wird in getCellRect auffgerufen, wo das eigentliche Verbinden der Zellen stattfindet.

"TableAdapter" enthält die Spaltenüberschriften der JTable.

"TableNode" enthält die Daten für die JTable (dataRow), sowie die Kurzbezeichnung, die im JTree erscheint (label).

"TreeTablePanel" verbindet alles zu einer Einheit (naja, der JButton "btAdd" gehört da vielleicht nicht
rein). Dort muss man eigentlich nichts mehr anpassen (ausser vielleicht Sachen wie die RowHeight in der Methode "customizeTable").
 
Zuletzt bearbeitet:

Alloc

Mitglied
Hi,

Man kann sicherlich noch einiges verbessern, aber ich denke, der Code ist ziemlich übersichtlich gegliedert, und die Methodennamen (sowie andere Namen) sind meisten selbsterklärend.
Meine Anmerkungen sollten nicht irgendwie negativ klingen oder so, bis jetzt sieht das ganze nur einfach nicht soooo ideal für meine Zwecke aus ;)
Im Idealfall hätte ich halt lieber eine "normale" TreeTable (also, beides in einem, wie bei JXTreeTable oder die Kompo von OpenSwing). So müsste ich zb die erste Spalte leer lassen, also nur zur Baumsteuerung verwenden, und könnte erst in der zweiten mit Inhalt anfangen.

Was mir noch aufgefallen ist: Wenn man in der Table im Beispiel die Spalten vertauscht wird der Inhalt falsch angezeigt (wahrscheinlich wird der falsche Renderer für die Inhalte ausgewählt).

"TableNode" enthält die Daten für die JTable (dataRow), sowie die Kurzbezeichnung, die im JTree erscheint (label).
Seh ich das richtig, dass an der Stelle zur Zeit fest vorgegeben ist, dass die rechte Seite nur 2 Spalten haben kann?

"TreeTablePanel" verbindet alles zu einer Einheit (naja, der JButton "btAdd" gehört da vielleicht nicht rein). Dort muss man eigentlich nichts mehr anpassen (ausser vielleicht Sachen wie die RowHeight in der Methode "customizeTable").
Was macht denn dieses TreeTablePanel-Array in der TreeTablePanel-Klasse? Außerdem fehlen doch dort im Prinzip die Schnittstellen um von außerhalb (also, wenn ich dieses TreeTablePanel als Komponente in meiner GUI habe) auf die Daten zuzugreifen (zB welcher Datensatz gewählt ist) etc?

Grüße,
Chris
 

André Uhres

Top Contributor
Chris, das Problem beim Spaltenvertauschen liegt wahrscheinlich daran, daß keine Konversion der Spaltennummer gemacht wurde (convertColumnIndexToModel) bzw. nicht direkt auf das TableModel zugegriffen wurde. Das müsste sich leicht beheben lassen.
Die "TreeTable" ist übrigens kein fertiges Endprodukt mit allen möglichen Ansprüchen, sondern nur ein Codeschnippsel als Ansatz für Entwickler. Fühl dich frei, so viele Spalten und Zugriffsmethoden hinzuzufügen, wie du brauchst.
Das TreeTablePanel-Array in der TreeTablePanel-Klasse ist nicht unbedingt nötig. Ich habe es hinzugefügt, für den Fall wo mehrere identische TreeTables angezeigt werden sollen (das war mal eine Forumfrage).
 
Zuletzt bearbeitet:
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M suche geeignetes Fenster zur Anzeige AWT, Swing, JavaFX & SWT 49
-DD Lobby/Spielerliste aktualisieren bei Suche AWT, Swing, JavaFX & SWT 1
looparda Suche Lib für Visualisierung von Graphen AWT, Swing, JavaFX & SWT 12
L JavaFX Ich suche das passende Textfield Event AWT, Swing, JavaFX & SWT 1
stroggi Swing Suche nach Kurveneditor (UI-Element) AWT, Swing, JavaFX & SWT 1
J Suche nach einer horizontal aufklappbaren Toolbar AWT, Swing, JavaFX & SWT 1
Maks16 JavaFX ominöse Mails in meinem Suche Postfach von Outlook Sharepoint AWT, Swing, JavaFX & SWT 4
S JavaFX Suche Literatur für JavaFX Einstieg AWT, Swing, JavaFX & SWT 8
P LookAndFeel Suche Buch und Beispielprojekte für gute Designs AWT, Swing, JavaFX & SWT 4
L [SUCHE] Tutorial zur grafischen Nutzeroberflächengestaltung AWT, Swing, JavaFX & SWT 6
S Swing Suche Drag & Drop Beispiele AWT, Swing, JavaFX & SWT 1
K Swing Konsolen Programm in GUI - Suche Hilfe bei Konsolenausgabe AWT, Swing, JavaFX & SWT 2
M Suche Javabibliothek zum Zeichnen mathematischer Funktionen AWT, Swing, JavaFX & SWT 11
I Suche in einem Text AWT, Swing, JavaFX & SWT 4
TheWhiteShadow Swing suche passenden LayoutManager AWT, Swing, JavaFX & SWT 8
hdi LookAndFeel Suche: Substance L&F AWT, Swing, JavaFX & SWT 4
A Swing Suche Listener für beliebige Änderung an GUI Items/Controls AWT, Swing, JavaFX & SWT 8
G DB-Suche in GUI AWT, Swing, JavaFX & SWT 4
C Live Suche mit TextFeld AWT, Swing, JavaFX & SWT 2
A Swing suche OpenSource Date(Time)Picker Komponente AWT, Swing, JavaFX & SWT 9
A LookAndFeel Suche richtige Technologie für eine bestimme Desginvorlage AWT, Swing, JavaFX & SWT 5
N LayoutManager suche LayoutManager für Tabellenstruktur AWT, Swing, JavaFX & SWT 2
A Suche: Eclipse-GUI-Layout AWT, Swing, JavaFX & SWT 5
Nicer LookAndFeel Suche noch LaFs AWT, Swing, JavaFX & SWT 7
padde479 Suche eine Komponente (->ToolBar) AWT, Swing, JavaFX & SWT 7
E Swing JTree Filter Suche mit Collapse?! AWT, Swing, JavaFX & SWT 4
B Swing Suche JFileChooser zum Speichern AWT, Swing, JavaFX & SWT 2
slawaweis Suche TagCloud Komponente für Swing AWT, Swing, JavaFX & SWT 10
hdi SWT Suche passenden LayoutManager AWT, Swing, JavaFX & SWT 5
Nicer LookAndFeel Suche LaFs AWT, Swing, JavaFX & SWT 12
N Suche nach Komponente / LaF AWT, Swing, JavaFX & SWT 21
V [SUCHE]GUI Programmier Tutorial[Netbeans] AWT, Swing, JavaFX & SWT 8
M Suche passende Chart Library LGPL/kommerziell AWT, Swing, JavaFX & SWT 14
E Swing Suche LayoutManager AWT, Swing, JavaFX & SWT 5
hdi Swing Suche nach passendem Layout AWT, Swing, JavaFX & SWT 8
P Suche freien Date und Time Picker AWT, Swing, JavaFX & SWT 3
hdi Swing Suche passende API Klasse(n) für meine Komponente AWT, Swing, JavaFX & SWT 8
ModellbahnerTT Suche bessere Methode AWT, Swing, JavaFX & SWT 4
M Suche Java Komponente AWT, Swing, JavaFX & SWT 2
newcron Suche die hässlichsten Swing GUIs AWT, Swing, JavaFX & SWT 4
C Suche fertigen HTML editor AWT, Swing, JavaFX & SWT 2
V Suche "Einblendeffekt" AWT, Swing, JavaFX & SWT 6
V Suche Komponente AWT, Swing, JavaFX & SWT 2
hdi JTable -> Suche passenden Listener AWT, Swing, JavaFX & SWT 10
D Suche Framework um Grafikprogramm zu schreiben. AWT, Swing, JavaFX & SWT 36
Q Suche "Ablaufplan" für Swing-Fensterwechsel? AWT, Swing, JavaFX & SWT 2
R Ich suche einen sehr simplen. AWT, Swing, JavaFX & SWT 2
A Suche analoge Uhr in Java AWT, Swing, JavaFX & SWT 9
M Jlist Eintrag mit suche selektieren AWT, Swing, JavaFX & SWT 4
W Suche großes vollständiges Swing GUI Beispiel nach MVC Model AWT, Swing, JavaFX & SWT 5
G Suche 2 Componenten: Splitpane ausblenden / Stecknadel AWT, Swing, JavaFX & SWT 2
B Suche eine GUI-Komponente AWT, Swing, JavaFX & SWT 2
G Listener Suche für F1 AWT, Swing, JavaFX & SWT 25
D Suche verticale Progressbar AWT, Swing, JavaFX & SWT 2
E Suche kostenloses Iconset für Swing (Ocean) AWT, Swing, JavaFX & SWT 4
M Suche Komponente für mehrere 100.000 Zeile Text AWT, Swing, JavaFX & SWT 3
C suche 1.3er - compatible Version von Swing-layout AWT, Swing, JavaFX & SWT 15
S Ich suche ein Darstellungselement AWT, Swing, JavaFX & SWT 2
T Suche Methode zum anzeigen eines Textteils im JPasswordfield AWT, Swing, JavaFX & SWT 2
N [Suche] JTree Widget/Library. AWT, Swing, JavaFX & SWT 2
M auf der suche nach einer komponente AWT, Swing, JavaFX & SWT 3
G suche Actionlistener der "Loslassen" eines Buttons AWT, Swing, JavaFX & SWT 5
G Suche Tutorial zum Thema jdbc/SQL/Select/JTable AWT, Swing, JavaFX & SWT 9
O Suche einfache Möglichkeit zum Speichern AWT, Swing, JavaFX & SWT 21
H Suche Quelltext für einen einfachen Animationsthread AWT, Swing, JavaFX & SWT 8
EagleEye suche Tutorial(s) für JTable AWT, Swing, JavaFX & SWT 2
G Suche einen KeyEvent für die Taste "ä" AWT, Swing, JavaFX & SWT 7
K TreeTable exportieren/importieren AWT, Swing, JavaFX & SWT 20
K Swing Struktur für TreeTable rekursiv aufbauen AWT, Swing, JavaFX & SWT 17
N JavaFX TreeTable Scene Builder AWT, Swing, JavaFX & SWT 8
M treetable einfaches beispiel gesucht AWT, Swing, JavaFX & SWT 6
C Problem mit TreeTable AWT, Swing, JavaFX & SWT 8
Maxim6394 JavaFX Scene Builder - Crash bei eigener Komponente AWT, Swing, JavaFX & SWT 2
H JDialog in Größe ändern - Resize-Cursor bleibt betreten der Komponente AWT, Swing, JavaFX & SWT 1
temi JavaFX "Frames" in JavaFx - passende Komponente? AWT, Swing, JavaFX & SWT 13
J Swing Komponente wird unpassend angepasst in der Größe AWT, Swing, JavaFX & SWT 35
M4cM4rco0707 JavaFX Custom-Komponente mit Custom-Controller AWT, Swing, JavaFX & SWT 3
J Komponente wird manchmal falsch gezeichnet AWT, Swing, JavaFX & SWT 0
R Swing Komponente im JFrame überschreinen sich AWT, Swing, JavaFX & SWT 7
Q-bert Dynamische Komponente erzeugen AWT, Swing, JavaFX & SWT 6
G vorgefertigte Buttons oder neue Komponente mit MouseListener? AWT, Swing, JavaFX & SWT 0
B Swing Update Swing Komponente bevor Methode startet. AWT, Swing, JavaFX & SWT 4
Tom299 JavaFX Ähnliche Komponente wie der VB6 Frame? AWT, Swing, JavaFX & SWT 2
M JavaFX Progressbar bar und track Komponente zur Laufzeit ändern AWT, Swing, JavaFX & SWT 2
Tort-E JavaFX Daten an WebView Komponente AWT, Swing, JavaFX & SWT 1
G JPanel komponente Löschen AWT, Swing, JavaFX & SWT 7
T Swing Index für Komponente in JPanel? AWT, Swing, JavaFX & SWT 6
T Swing Größe einer Komponente in einem BoxLayout / FlowLayout festlegen AWT, Swing, JavaFX & SWT 7
G Border der Komponente bei Table CellRenderer überschreiben AWT, Swing, JavaFX & SWT 0
P Warten auf komponente AWT, Swing, JavaFX & SWT 2
U LookAndFeel für eine Komponente AWT, Swing, JavaFX & SWT 2
E Mit Netbeans von einer Form auf eine Komponente einer anderen Form zugreifen AWT, Swing, JavaFX & SWT 2
G Zeichnen auf eine schwergewichtige Komponente? AWT, Swing, JavaFX & SWT 0
T Komponente wird nicht neu gezeichnet AWT, Swing, JavaFX & SWT 3
S Swing Komponente wird überblendet AWT, Swing, JavaFX & SWT 27
A Swing Komponente mehrseitig ausdrucken AWT, Swing, JavaFX & SWT 2
V Fertige Komponente zum Anzeigen mehrerer Bilder AWT, Swing, JavaFX & SWT 5
B Swing Komponente an Position eines Objektes ausgeben lassen AWT, Swing, JavaFX & SWT 3
R Swing Komponente austauschen AWT, Swing, JavaFX & SWT 2
M JApplet mit Java 3D Komponente AWT, Swing, JavaFX & SWT 6

Ähnliche Java Themen

Neue Themen


Oben