Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
特定的一个表头颜色java swing_Swing - Fatal编程技术网

特定的一个表头颜色java swing

特定的一个表头颜色java swing,swing,Swing,我想更改特定表格标题的背景色。在我的应用程序中,我必须将当前月份的标题颜色设置为红色。 我的代码在这里:: jTable1.getTableHeader(). setDefaultRenderer( new DefaultTableHeaderCellRenderer()); @Override public Component getTableCellRendererComponent(JTable table, Object value,

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

     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;
  }
这将使所有标题颜色为红色。 请给我一些建议。
提前感谢。

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

  • 始终设置背景色:即正常和高亮显示状态的背景色
  • 在打电话给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;
  }

有关更多详细信息(以及需要的原因),请参阅此答案的a

+1和链接答案。现在,这是值得记住的事情,以避免下次我处理表格时浪费大量时间