【问题标题】:How do I get a JTable header to display entire column names instead of shortening them?如何让 JTable 标题显示整个列名而不是缩短它们?
【发布时间】:2011-11-07 16:56:57
【问题描述】:

我有一个 JTable,我填充了一个扩展 AbstractTableModel 的类。问题是列太短而无法显示列名。我已关闭 Jtable AutoResizeMode 属性,但仍会发生缩短。我该如何解决?

【问题讨论】:

    标签: java swing jtable jtableheader text-size


    【解决方案1】:

    有两种方法

    1)从TableColumn计算PreferredSize(默认返回JLabel),有3-4种正确的方法来确定显示的TextLenght in pixex(请加上5-8个像素)

    2) 直接setPreferredSize,例如TableColumn#setPreferredSize

    【讨论】:

    • 随机添加一个或其他像素或美元或苹果 ;-) 不得不承认,SwingX 的 ColumnFactory 完全一样,添加了一个神奇的“默认边距”
    【解决方案2】:

    设置 autoresizemode 只会阻止 JTable 的 coumns 被调整大小。要强制特定宽度检索表列模型:

    TableColumn column = jtable.getColumnModel().getColumn(col_num);
    

    并设置所需的宽度:

    column.setPreferredWidth(width);
    

    【讨论】:

    • 这只是解决方案的一半:另一半是找出“所需宽度”是什么;)见 Rob 的回答
    【解决方案3】:

    您可以使用Table Column Adjuster 根据标题文本调整列宽。

    getColumnHeaderWidth(...) 展示了如何使用标题文本和渲染器计算实际宽度。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-24
      • 2017-09-17
      • 2012-04-03
      • 2011-01-20
      • 2022-01-13
      • 2020-07-18
      • 1970-01-01
      相关资源
      最近更新 更多