如何获取JTable标头以显示整个列名而不是缩短它们?

时间:2011-08-31 14:58:27

标签: java swing jtable jtableheader text-size

我有一个JTable,我填充了一个扩展AbstractTableModel的类。问题是列太短而无法显示列名。我已经关闭了Jtable AutoResizeMode属性,但仍然会发生缩短。我该如何解决这个问题?

3 个答案:

答案 0 :(得分:3)

您可以使用Table Column Adjuster根据标题文字调整列宽。

getColumnHeaderWidth(...)显示了如何使用标题文本和渲染器计算实际宽度。

答案 1 :(得分:2)

有两种方式

1)从PreferredSize计算TableColumn(通过defalut返回JLabel),有3-4种正确的方法来确定显示的TextLenght in pixex(另外请加上5-8个像素)

2)setPreferredSize直接,例如TableColumn#setPreferredSize

答案 2 :(得分:2)

设置自动调整大小模式只会阻止调整Table的列的大小。强制特定宽度检索表列模型:

TableColumn column = jtable.getColumnModel().getColumn(col_num);

并设置所需的宽度:

column.setPreferredWidth(width);