DarthShader
Erfahrenes Mitglied
Hallo,
ich benutze eine JTable mit einem eigenen CellRenderer, abgeleitet von JLabel.
Was ich nun erreichen möchte ist, dass sich die Zeilenhöhen der Höhe des JLabels anpassen. Nehmen wir an, ich füge meinem TableModel 3 Objekte hinzu, und durch meinen Renderer werden diese Objekte mehrzeilig dargestellt, dann muss ja auch die Zeilenhöhe entsprechend angepasst werden.
Ich weiß, dass JTable eine MEthode setRowHeight anbietet, mit der man die Zeilenhöhe angeben kann. Ich will aber nicht alle Zeilen gleich hoch machen, sondern jede genau so, wie sie es benötigt - getPrefferedSize().height gibt mir diese Information innerhalb des CellRenderers.
Setze ich jedoch die Zeilenhöhe innerhalb des Renderers, löst das wieder ein Repaint aus, und er landet in einer Endlosschleife.
Wie also kann ich es umsetzen, dass meine Zeilen der Tabelle alle ihre entsprechende Höhe (abhängig von dem JLabel, von dem ja der Renderer abgeleitet ist) erhalten (und das sind verschiedene Höhen)?
Ich wäre für jeden Vorschlag dankbar
Vielen Dank für Eure Hilfe!
ich benutze eine JTable mit einem eigenen CellRenderer, abgeleitet von JLabel.
Was ich nun erreichen möchte ist, dass sich die Zeilenhöhen der Höhe des JLabels anpassen. Nehmen wir an, ich füge meinem TableModel 3 Objekte hinzu, und durch meinen Renderer werden diese Objekte mehrzeilig dargestellt, dann muss ja auch die Zeilenhöhe entsprechend angepasst werden.
Ich weiß, dass JTable eine MEthode setRowHeight anbietet, mit der man die Zeilenhöhe angeben kann. Ich will aber nicht alle Zeilen gleich hoch machen, sondern jede genau so, wie sie es benötigt - getPrefferedSize().height gibt mir diese Information innerhalb des CellRenderers.
Setze ich jedoch die Zeilenhöhe innerhalb des Renderers, löst das wieder ein Repaint aus, und er landet in einer Endlosschleife.
Wie also kann ich es umsetzen, dass meine Zeilen der Tabelle alle ihre entsprechende Höhe (abhängig von dem JLabel, von dem ja der Renderer abgeleitet ist) erhalten (und das sind verschiedene Höhen)?
Ich wäre für jeden Vorschlag dankbar
Vielen Dank für Eure Hilfe!