Вам нужно будет рассчитать необходимую высоту для вновь введенного текста.В зависимости от того, какое средство визуализации вы используете для ячейки, вы можете использовать, например, 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);