我想渲染一个摆动表,根据列中显示的文本量来调整行的高度,以便所有文本都显示在单元格中。
问题是,当我设置行的高度时,会创建无限循环。我该如何解决呢?
这是我的渲染器
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;
}
}
None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)