Sytuacja wygląda tak:
Po wczytaniu danych do komórki...
![user image](http://nykiel.nazwa.pl/tmp/java1.png)
Po zastosowaniu metody aktualizującej wysokość..
![user image](http://nykiel.nazwa.pl/tmp/java2.png)
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
DefaultTableModel model = (DefaultTableModel) jTable1.getModel();
model.addRow(new Object[]{"Lorem ipsum dolor sit amet enim. Etiam ullamcorper. Suspendisse a pellentesque dui, non felis. Maecenas malesuada elit lectus felis, malesuada ultricies. Curabitur et ligula. Ut molestie a, ultricies porta urna. Vestibulum commodo volutpat a, convallis ac, laoreet enim. Phasellus fermentum in, dolor. Pellentesque facilisis. Nulla imperdiet sit amet magna. Vestibulum dapibus, mauris nec malesuada fames ac turpis velit, rhoncus eu, luctus et interdum adipiscing wisi. "});
jTable1.getColumnModel().getColumn(0).setCellRenderer(new TextAreaRenderer());
}
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
updateRowHeights();
}
private void updateRowHeights()
{
try
{
for (int row = 0; row < jTable1.getRowCount(); row++)
{
int rowHeight = 0;
for (int column = 0; column < jTable1.getColumnCount(); column++)
{
Component comp = jTable1.prepareRenderer(jTable1.getCellRenderer(row, column), row, column);
rowHeight = Math.max(rowHeight, comp.getPreferredSize().height);
}
jTable1.setRowHeight(row, rowHeight);
}
}
catch(ClassCastException e) {}
}
public class TextAreaRenderer extends JTextArea
implements TableCellRenderer {
public TextAreaRenderer() {
setLineWrap(true);
setWrapStyleWord(true);
}
public Component getTableCellRendererComponent(JTable jTable,
Object obj, boolean isSelected, boolean hasFocus, int row,
int column) {
setText((String)obj);
return this;
}
}