简体   繁体   English

JTable cellRenderer不会仅更改目标单元格

[英]JTable cellRenderer doesnt change just desingated cells

Here is a code part of my project. 这是我的项目的代码部分。 I am try to change the color of desingated cells. 我尝试更改去壳细胞的颜色。 But when i try it, all cells' color changing. 但是当我尝试时,所有单元格的颜色都会改变。 Why is that ? 这是为什么 ? Thanks. 谢谢。

private class cellRenderer extends DefaultTableCellRenderer {

    @Override
    public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {

        Component cell = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
      if(row==column){
          cell.setBackground(Color.yellow);
      }     
        return cell;
    }
}

I think you need to restore the original color. 我认为您需要恢复原始颜色。

private class cellRenderer extends DefaultTableCellRenderer {
    Color originalColor = null;

    @Override
    public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {

      Component cell = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);


       if (originalColor == null) {
           originalColor = cell.getBackground();
      }

      if(row==column){
          cell.setBackground(Color.yellow);
      } else {
          cell.setBackground(originalColor);
      }

      return cell;
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM