自动调整JTable中行的高度

And*_*eaC 17 java swing

在JTable中,如何让一些行自动增加高度以显示内部的完整多行文字?这是它目前的显示方式:

我不想为所有行设置高度,但仅针对具有多行文本的行.

cam*_*ckr 34

确定行高度的唯一方法是渲染每个单元格以确定渲染高度.在您的表填充数据后,您可以执行以下操作:

private void updateRowHeights()
{
    for (int row = 0; row < table.getRowCount(); row++)
    {
        int rowHeight = table.getRowHeight();

        for (int column = 0; column < table.getColumnCount(); column++)
        {
            Component comp = table.prepareRenderer(table.getCellRenderer(row, column), row, column);
            rowHeight = Math.max(rowHeight, comp.getPreferredSize().height);
        }

        table.setRowHeight(row, rowHeight);
    }
}
Run Code Online (Sandbox Code Playgroud)

如果只有第一列可以包含多行,则只能优化该列的上述代码.