0
我想呈现JTable
组件的单元格以支持换行,所以我在单元格内使用了JTextarea
,因为文本区域允许换行。这是我的代码:摆动表格单元格中的文本
//Render column with header Person
table.getColumn("Person").setCellRenderer(new RenderRedGreen());
final class RenderRedGreen extends DefaultTableCellRenderer {
JTextArea textarea;
@Override public Component getTableCellRendererComponent(
JTable aTable, Object aNumberValue, boolean aIsSelected,
boolean aHasFocus, int aRow, int aColumn)
{
String value = (String)aNumberValue;
textarea = new JTextArea();
aTable.add(textarea);
textarea.setLineWrap(true);
textarea.setWrapStyleWord(true);
textarea.setText(value);
aTable.setRowHeight(90);
if (aNumberValue == null) return this;
Component renderer = super.getTableCellRendererComponent(
aTable, aNumberValue, aIsSelected, aHasFocus, aRow, aColumn
);
if (value.equals("Me"))
renderer.setForeground(Color.red);
else
renderer.setForeground(Color.black);
return this;
}
}
问题是文本没有被包裹,所以我看不到完整的长文本。我究竟做错了什么?
一般来说,包装文字并不难,你可以只换行文本''标签和它会包装,问题将会使该行足够大以适应文本(顺便说一句,不要在渲染器中设置行高度,这不是工作)。问题是,你似乎试图设置'JTextArea'和其他渲染,但只是简单地传回'this' ......所以这与'JTextArea'有什么关系呢? – MadProgrammer
作为[示例](http://stackoverflow.com/questions/31042605/java-swing-adding-multiple-lines-in-jtables-cell/31043203#31043203) – MadProgrammer
'新的JTextArea();'应该更像新的JTextArea(3,20); //建议大小!' –