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

标签 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().width

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

最佳答案

我会坚持使用 setPreferredScrollableViewportSize()Setting and Changing Column Widths 中建议的方法, 其次是 pack() .

关于java - 正确调整 JTable 的一列标题的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7391749/

相关文章:

java - 用于切换到另一个 Activity 的 fragment 中的按钮 - 不起作用

java - 如何使用 RTFEditorKit 读取页眉和页脚行

java - 如何创建包装jedit源代码的netbeans 7.3项目?

java - 未经检查或不安全的操作。数组到 JList

java - JTable 列标题居中时的外观问题

Java:WAITING输入并在 JFrame 之间传输信息

java - Java 中没有 Graphics2D.draw 方法?

Java Swing : UI not repainted correctly (white)

Java JTable 标题自动换行

java - 自定义 TableHeaderUI 破坏了自定义 TableRowSorter