2

我有一个有 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().width

什么是独立于平台的正确方法?或者,在 Mac 上是否有一种方法可以计算所需的额外空间,这样我就不必对上述结果添加 15 个左右像素之类​​的东西进行硬编码?

4

1 回答 1

1

我会坚持使用设置和更改列宽setPreferredScrollableViewportSize()中建议的方法,然后是.pack()

于 2011-09-12T18:30:56.380 回答