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); //建議大小!' –