【发布时间】:2011-11-07 16:56:57
【问题描述】:
我有一个 JTable,我填充了一个扩展 AbstractTableModel 的类。问题是列太短而无法显示列名。我已关闭 Jtable AutoResizeMode 属性,但仍会发生缩短。我该如何解决?
【问题讨论】:
标签: java swing jtable jtableheader text-size
我有一个 JTable,我填充了一个扩展 AbstractTableModel 的类。问题是列太短而无法显示列名。我已关闭 Jtable AutoResizeMode 属性,但仍会发生缩短。我该如何解决?
【问题讨论】:
标签: java swing jtable jtableheader text-size
有两种方法
1)从TableColumn计算PreferredSize(默认返回JLabel),有3-4种正确的方法来确定显示的TextLenght in pixex(请加上5-8个像素)
2) 直接setPreferredSize,例如TableColumn#setPreferredSize
【讨论】:
设置 autoresizemode 只会阻止 JTable 的 coumns 被调整大小。要强制特定宽度检索表列模型:
TableColumn column = jtable.getColumnModel().getColumn(col_num);
并设置所需的宽度:
column.setPreferredWidth(width);
【讨论】:
您可以使用Table Column Adjuster 根据标题文本调整列宽。
getColumnHeaderWidth(...) 展示了如何使用标题文本和渲染器计算实际宽度。
【讨论】: