【问题标题】:paintComponent and getTableCellRendererComponent not getting calledpaintComponent 和 getTableCellRendererComponent 没有被调用
【发布时间】:2011-04-09 01:27:00
【问题描述】:

我正在使用 setDefaultTableRenderer 设置 JTable 的渲染器。

JTable table = new JTable();
table.setDefaultRenderer(Object.class,MyRenderer);

MyRenderer 扩展 DefaultTableCellRenderer 并覆盖 paintComponent 和 getTableCellRendererComponent。

我有 4 行和 8 列,由于奇怪的原因,我的渲染器方法没有为第一行的前两列调用。我使用 SwingUtilites.invoke 方法来调用我的 GUI,它适用于除这两个之外的所有其他列列。

【问题讨论】:

    标签: java swing jtable renderer


    【解决方案1】:

    没有看到你的代码我只能猜测,但我认为你可能有自己的 TableModel,它为每一列返回 column.class。 JTable 为其中一些类(如 Integer 等)提供 DefaultCellRenderer。因此,您的第一列可能是 Integer 列,这导致 JTable 使用自己的渲染器。

    为避免这种情况,您只需覆盖 Integer.class 渲染器:

    table.setDefaultRenderer( Integer.class, myRenderer );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-16
      • 2012-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多