我正在尝试根据列标题和列宽度调整列的大小。
我在这方面取得了一些成功,但这实际上只是一个临时解决方案。
我设置的最小宽度仅适用于一个表格,但是我正在预览许多具有不同列标题的表格,因此有时此最小宽度会太小。我想要一种获取最小列标题的列标题宽度并将其分配给此变量的方法。
final TableColumnModel columnModel = table.getColumnModel();
for (int column = 0; column < table.getColumnCount(); column++)
{
int width = 70; // Min width
for (int row = 0; row < table.getRowCount(); row++)
{
TableCellRenderer renderer = table.getCellRenderer(row, column);
Component comp = table.prepareRenderer(renderer, row, column);
width = Math.max(comp.getPreferredSize().width +1 , width);
}
columnModel.getColumn(column).setPreferredWidth(width);
}
更新:
我尝试对正在循环的列使用 DefaultTableCellRenderer,然后获取列标题宽度并将其应用到变量,但结果是这样的
final TableColumnModel columnModel = table.getColumnModel();
for (int column = 0; column < table.getColumnCount(); column++)
{
DefaultTableCellRenderer colwidth=((DefaultTableCellRenderer)table.getTableHeader().getDefaultRenderer());
int width = colwidth.getWidth();
for (int row = 0; row < table.getRowCount(); row++)
{
TableCellRenderer renderer = table.getCellRenderer(row, column);
Component comp = table.prepareRenderer(renderer, row, column);
width = Math.max(comp.getPreferredSize().width +1 , width);
}
columnModel.getColumn(column).setPreferredWidth(width);
}
最佳答案
table.getColumnModel().getColumn("您想要的列").getPreferredWidth();
关于java - 获取列标题的宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39465960/