我有一个有3列的表,并希望第一个是所需的最小大小。标题是"水平",似乎是25-29像素取决于我使用的字体/操作系统。然而,表头似乎需要至少35在Windows和52在Mac上显示它没有省略号。我不明白为什么需要额外的空间(没有边框等)。
我终于发现,以下将在Windows(35)上给出所需的大小,但在Mac上它返回36这是不够的(很可能是由于排序箭头指示器旁边,而不是上面,文本)…
table.getTableHeader () .getDefaultRenderer () .getTableCellRendererComponent(空,table.getColumnModel().getColumn(0).getHeaderValue(), false, false, 0,0) .getPreferredSize () .width
什么是独立于平台的正确方法?或者,在Mac上是否有一种方法来计算所需的额外空间,这样我就不必硬编码诸如在上述结果中添加15个左右像素之类的东西?
我坚持使用setPreferredScrollableViewportSize()
和设置和更改列宽中建议的方法,然后是pack()
。