特定的一个表头颜色 java swing [英] particular one table header color java swing

查看:33
本文介绍了特定的一个表头颜色 java swing的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想更改特定表格标题的背景颜色.在我的应用程序中,我必须将当前月份的标题颜色设置为红色.我的代码在这里::

I want to change the background color of particular table header. In my appliaction I have to set header color Red on the current month. My Code is here::

     jTable1.getTableHeader().
    setDefaultRenderer(
    new DefaultTableHeaderCellRenderer());



  @Override
  public Component getTableCellRendererComponent(JTable table, Object value,
          boolean isSelected, boolean hasFocus, int row, int column) {
    super.getTableCellRendererComponent(table, value,
            isSelected, hasFocus, row, column);
    JTableHeader tableHeader = table.getTableHeader();

    if(column==1)
    tableHeader.setBackground(Color.red);


    return this;
  }

这会使所有标题颜色变为红色.请给我一些建议.提前致谢.

this make all the header color's red. Please give me some suggestion. Thanks in advance.

推荐答案

臭名昭著的 DefaultTableCellRenderer 颜色记忆 :-) 你必须

The infamous color memory of DefaultTableCellRenderer :-) You have to

  • 始终设置背景颜色:即适用于正常状态和突出显示状态
  • 在调用 super 之前这样做

类似:

  @Override
  public Component getTableCellRendererComponent(JTable table,
        Object value, boolean isSelected, boolean hasFocus, int row,
        int column) {
      if (myHighlightCondition) {
          setBackground(Color.RED);
      } else {
          setBackground(null);
      }
     super.getTableCellRendererComponent(table, value, isSelected, hasFocus,
           row, column);
     return this;
  }

有关更多详细信息(以及为什么需要这样做),请参阅 如何正确使用自定义渲染器在 JTable 中绘制特定单元格?

For more details (and why that's needed) see a How do I correctly use custom renderers to paint specific cells in a JTable?

这篇关于特定的一个表头颜色 java swing的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆