正确调整JTable的一列标题的大小

时间:2011-09-12 17:40:32

标签: java swing jtableheader

我有一个包含3列的表,并希望第一列是所需的最小尺寸。标题是“级别”,似乎是25-29像素,具体取决于我使用的字体/操作系统。但是,表格标题似乎在Windows上至少需要35,在Mac上需要52以显示它而不需要省略号。我无法弄清楚为什么需要额外的空间(没有边框等)。

我终于发现以下内容将在Windows(35)上提供所需的大小,但在Mac上它返回36这是不够的(很可能是由于排序箭头指示符在文本旁边,而不是在上面)。 ..

  

table.getTableHeader()。getDefaultRenderer()。getTableCellRendererComponent(NULL,   table.getColumnModel()。getColumn(0).getHeaderValue(),false,false,0,   0).getPreferredSize()。宽度

这种平台独立的正确方法是什么?或者,有没有办法在Mac上计算所需的额外空间,这样我就不必硬编码就像在上面的结果中添加15个左右的像素一样?

1 个答案:

答案 0 :(得分:1)

我坚持使用setPreferredScrollableViewportSize()Setting and Changing Column Widths中建议的方法,然后是pack()