JTable 2 Fragen

KPaul20005

Grünschnabel
Guten Abend zusammen

Ich habe zwei Fragen zu einer JTable:

  1. Kann ich Linien des Gitternetzes einer JTable dicker darstellen?
    Wäre sehr hilfreich für die Lesbarkeit einer grossen Tabelle.
  2. Kann ich den Editor für eine Zelle so schreiben dass er sich nicht in der Zelle öffnet sondern zum Beispiel als eignständiger Dialog?
    Ich habe in einer Zelle mehrere Informationen Gespeichert die einfach nicht immer alle dargestellt werden.
Grüsse KPaul20005
 
Können tust Du alles. :)

1. setGridColor(...), setRowMargin(...), ect. sind Methoden, das Aussehen zu ändern

2. Du schreibst Dir Deinen eigenen TableCellEditor und füllst die Methode entsprechend aus.
 
>Ich habe zwei Fragen zu einer JTable:

Die sollten dann eigentlich in das Swing-Unterbrett. ;)

>Kann ich Linien des Gitternetzes einer JTable dicker darstellen?
>Wäre sehr hilfreich für die Lesbarkeit einer grossen Tabelle.

Weiß ich auswendig nicht. API guggn. Wenn die JTable dazu nichts anbietet, ggf den TableCellRenderer setzen und entsprechend ändern.

>Kann ich den Editor für eine Zelle so schreiben dass er sich nicht in der Zelle öffnet sondern zum Beispiel als eignständiger Dialog?

Glaube ich nicht, aber vielleicht geht das über einen MouseListener?

>Ich habe in einer Zelle mehrere Informationen Gespeichert die einfach nicht immer alle dargestellt werden.

Dann schau mal in die Beispiele aus der Linkliste bei dem codeguru-Link.
 
Danke für die Antworten

Habe leider keines von beidem hinbekommen.

Ich glaube das grid selber kann man nicht breiter machen.

Den Zellen Editor bringe ich nicht aus der Zelle raus werde das wohl mit grösser werdenden Zellen machen müssen.
 
Hi,
dazu zwei Denkanstöße:
1. Wenn unbedingt ein Dialog geöffnet werden soll, dann mach das mit einem MouseListener an der JTable. Das geht definitiv.
2. Rein konzeptionell verstehe ich nicht, wie in einer Zelle (!) mehr Informationen liegen können, als angezeigt werden. Wenn es wirklich mehr Informationen gibt, die sich quasi auf die ganze Zeile beziehen, dann macht es m.E. mehr Sinn, einen Editor (Dialog) für die Daten der ganzen Zeile zu öffnen.
Beispiel:
Du verwaltest eine Adressliste. In den Zeilen stehen aber nur Name und Vorname. Nun möchtest Du zu dem Namen noch die Telefonnummer verwalten. Dann ist es doch sinnvoller, im TableModel eine Liste "Adresse" zu haben und bei getValuetAt() aussuchen zu können, ob ich nu Name, Vorname oder sonstwas anzeigen möchte. Die Anzeige in der Tabelle steht und fällt bei dieser Idee mit dem Adress-Objekt. Ergo: Eine Adresse = eine Tabellenzeile. Welche Attribute von Adresse schliesslich in der Tabelle angezeigt werden, bleibt Dir überlassen. Und in einem Editor-Dialog hältst Du als Datenobjekt eine Adresse, fertig. Dies ist sicher der sauberste und auch einfachste Weg.
 
Zurück