Hallo!
Ich habe ein kleines Problem! Und zwar habe ich in meinem jTable mehrzeilige Zellen. Diese habe ich mit einem TableCellRenderer der die Komponente JTextArea erweitert realisiert. Das funktioniert auch alles sehr gut. Jedoch möchte ich jetzt meinen mehrzeiligen Zellen eine andere Zeilenhöhe geben als Zellen mit nur einer Zeile. (Was ja auch logisch ist, da man sonst den Text nicht sieht) Der Text selbst wird mit lineWrap an die Spaltenbreite angepasst. Wenn ich jedoch jetzt in meinem CellRenderer die Höhe oder die Anzahl der Zeilen in der Zelle auslesen will, um die Höhe der Zeile zu setzen, bekomme ich meistens 0 oder 1 und eine folgende Exception. Kann mir jemand sagen wie ich die Zeilenhöhe richtig setzen kann? Habe schon etliches versucht wie getPreferredSize(), was aber irgendwie nur teilweise funktioniert.
Hier mein CellRenderer:
Ich habe ein kleines Problem! Und zwar habe ich in meinem jTable mehrzeilige Zellen. Diese habe ich mit einem TableCellRenderer der die Komponente JTextArea erweitert realisiert. Das funktioniert auch alles sehr gut. Jedoch möchte ich jetzt meinen mehrzeiligen Zellen eine andere Zeilenhöhe geben als Zellen mit nur einer Zeile. (Was ja auch logisch ist, da man sonst den Text nicht sieht) Der Text selbst wird mit lineWrap an die Spaltenbreite angepasst. Wenn ich jedoch jetzt in meinem CellRenderer die Höhe oder die Anzahl der Zeilen in der Zelle auslesen will, um die Höhe der Zeile zu setzen, bekomme ich meistens 0 oder 1 und eine folgende Exception. Kann mir jemand sagen wie ich die Zeilenhöhe richtig setzen kann? Habe schon etliches versucht wie getPreferredSize(), was aber irgendwie nur teilweise funktioniert.
Hier mein CellRenderer:
Code:
class MultiLineCellRenderer extends JTextArea implements TableCellRenderer {
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected,
boolean hasFocus, int row,
int column) {
setWrapStyleWord(true);
setLineWrap(true);
setText(value.toString());
table.setRowHeight(row,100); // Statt der 100 soll hier die richtige Zeilenhöhe eingetragen werden
return this;
}
}