使用TableCellRender设置JTable列和行的颜色 [英] Set color of a JTable column and row with TableCellRender

查看:413
本文介绍了使用TableCellRender设置JTable列和行的颜色的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想知道是否可以设置指定的行和列颜色而不定义自己的自定义TableCellRender。

I am wondering if I can set the specified row and column color without defining my own custom TableCellRender.

目前我正在使用此代码

TableCellRenderer cellRenderer = this.devicePropertyTable.getCellRenderer(1, 1);
Component cellRenderComponent = cellRenderer.getTableCellRendererComponent(this.devicePropertyTable, "", false, false, 1, 1);

if (propertyValue.equalsIgnoreCase("true"))
{
    cellRenderComponent.setBackground(Color.green);
}
else
{
    cellRenderComponent.setBackground(Color.red);
}



我假设这将获得表节点的单元格渲染器1,1并用相应的颜色着色。

I would assume that this would get the cell render-er for the table node 1,1 and color it with the respective color. But what happens is it will color the whole table.

有没有另一种方法来创建一个自定义的TableCellRender?

Is there another way to do this without creating a custom TableCellRender?

推荐答案

编辑:对于此用例,最好使用上述答案中提到的prepareRenderer。

For this use case better use prepareRenderer as mentioned in the answer above.

您必须扩展JTable并覆盖

You will have to extend JTable and override

<!-- language: lang-java -->
getCellRenderer(int row, int column)

public class MyTable extends JTable
{
   @Override
   public TableCellRenderer getCellRenderer(int row, int column) 
   {
      return new TableCellRenderer()
      {
          Component getTableCellRendererComponent(JTable table, Object value,
                    boolean isSelected, boolean hasFocus, 
                    int row, int column)
          {
              Component cellRenderComponent = this.MyTable.super.getCellRenderer(row, column);
              if (getModel().getValue(row,column).toString().equalsIgnoreCase("true"))
              {
                  cellRenderComponent.setBackground(Color.green);
              }
              else
              {
                  cellRenderComponent.setBackground(Color.red);
              }

          }
      }
   }

}

这篇关于使用TableCellRender设置JTable列和行的颜色的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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