Swing-Renderer zum Anzeigen des vollständigen Texts in einer Spalte erstellt Endlosschleife
Ich möchte eine Swing-Tabelle rendern, wobei die Höhe der Zeile davon abhängt, wie viel Text in einer Spalte angezeigt wird, damit der gesamte Text in der Zelle angezeigt wird.
Das Problem ist, dass, wenn ich die Höhe auf die Zeile einstelle, eine Endlosschleife erstellt wird. Wie könnte ich das lösen?
Dies ist mein Renderer
final class RenderTextAreaMessage extends DefaultTableCellRenderer {
JTextArea textareaMessage;
@Override
public Component getTableCellRendererComponent(JTable aTable, Object aNumberValue, boolean aIsSelected,
boolean aHasFocus, int aRow, int aColumn ) {
System.out.println("aa");
String value = (String)aNumberValue;
textareaMessage = new JTextArea();
textareaMessage.setLineWrap(true);
textareaMessage.setWrapStyleWord(true);
textareaMessage.setText(value);
textareaMessage.setBorder(null);
textareaMessage.setMargin(null);
Component renderer = super.getTableCellRendererComponent(
aTable, aNumberValue, aIsSelected, aHasFocus, aRow, aColumn
);
Font fontType = textareaMessage.getFont();
FontMetrics fontMet = textareaMessage.getFontMetrics(fontType);
int fheight = fontMet.getHeight();
int lineCount = textareaMessage.getLineCount();
int rowHeight = lineCount * fheight;
aTable.setRowHeight(aRow,rowHeight+6);
return textareaMessage;
}
}