Drucken

Proxy Renderer für transponierte Tabellen

Hier wird eine Möglichkeit vorgestellt, mit wenig Aufwand dedizierte Renderer für bestimmte Datentypen in Javas JTables zu benutzen, wenn die Datentypen in den einzelnen Zellen einer Spalte unterschiedlich sind.

Szenario

Man hat unterschiedliche Datentypen in einer Spalte einer JTable und möchte diese trotzdem mit passenden Renderern darstellen. Beispiel: Eigenschaften einer Spalte in einer Datenbank-Tabelle:

Image 

Ziel

Schöner wäre es, wenn sich eine solche Tabelle wie folgt darstellt:

Image 

ProxyRenderer

Normalerweise kann man für einen bestimmten Objekttyp einen Renderer für eine JTable festlegen. Dies ist aber nur möglich, wenn alle Werte einer Spalte durchgängig derselben (Basis-)Klasse angehören. Kommt man (wie im gezeigten Beispiel schon mit den bei der JTable mitgelieferten Basisrenderern aus, kann man einfach den hier angehängten Proxy-Renderer für die gewünschte(n) Spalte(n) festlegen und schon erhält man das gewünschte Ergebnis.

Zum Download: