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

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

设置autoresizemode只会阻止JTable的coumnsresize。 要强制特定宽度检索表列模型:

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

并设置所需的宽度:

 column.setPreferredWidth(width); 

您可以使用表列调整器根据标题文本调整列宽。

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

有两种方法

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

2)直接setPreferredSize ,例如TableColumn#setPreferredSize