我有一个可编辑的jtable。当单元格由用户写入文本时,如果输入的文本更适合单元格大小,则表格中行的高度必须增加以适合用户输入的新文本。你能告诉我如何增加行的高度取决于输入的文本行。如何在jtable中增加一行的高度取决于在其单元格中输入的文本内容
任何人都可以帮助我吗? 我试图将JTextArea添加到一行中,但这不起作用。
我有一个可编辑的jtable。当单元格由用户写入文本时,如果输入的文本更适合单元格大小,则表格中行的高度必须增加以适合用户输入的新文本。你能告诉我如何增加行的高度取决于输入的文本行。如何在jtable中增加一行的高度取决于在其单元格中输入的文本内容
任何人都可以帮助我吗? 我试图将JTextArea添加到一行中,但这不起作用。
您需要计算所需的高度新输入的文字。根据您用于单元格的渲染器,您可以使用例如JTextArea.getLineCount()
找出文本包含的行数。
然后,您需要检索渲染器使用的字体的高度,并计算出所需的高度。
一旦你有了这个号码,使用JTable.setRowHeight(int, int)
来改变特定行的高度。
像这样:
Component c = renderer.getTableCellRendererComponent(theTable, theTable.getValueAt(row, col), false, false, row, col);
Font f = c.getFont();
FontMetrics fm = c.getFontMetrics(f);
// this cast depends on the way your renderer is implemented !!!!
int lineCount = ((JTextArea)c).getLineCount();
tnt fheight = fm.getHeight();
int rowHeight = lineCount * fheight;
theTable.setRowHeight(row, rowHeight);
我想是固定JTable的宽度。所以当输入的文本超过宽度时,它应该出现在单元格的下一行。 –