【问题标题】:JTable cellRenderer doesnt change just desingated cellsJTable 单元格渲染器不会仅更改指定的单元格
【发布时间】:2016-06-15 19:29:43
【问题描述】:

这是我项目的代码部分。 我正在尝试更改指定单元格的颜色。但是当我尝试它时,所有细胞的颜色都会改变。这是为什么 ? 谢谢。

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

【问题讨论】:

标签: java jtable cellrenderer


【解决方案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;
    }
}

【讨论】:

  • 最好也考虑isSelected,即不要设置任何背景是true。最常见的标准背景颜色是table.getBackground()
猜你喜欢
  • 2011-10-02
  • 1970-01-01
  • 2013-01-11
  • 2013-02-10
  • 2011-10-02
  • 2012-08-05
  • 2011-11-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多