JTable cellRenderer不仅仅改变了所设置的单元格

时间:2016-03-02 18:56:26

标签: java jtable cellrenderer

这是我项目的代码部分。 我试着改变去除细胞的颜色。但是,当我尝试它时,所有的细胞都会出现。变色。这是为什么 ? 感谢。

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;
    }
}

1 个答案:

答案 0 :(得分:1)

我认为你需要恢复原来的颜色。

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;
    }
}