【问题标题】:CellRenderer setBackground replaces Value in JTableCellRenderer setBackground 替换 JTable 中的 Value
【发布时间】:2021-09-27 20:05:37
【问题描述】:

所以我想改变特定列的背景颜色。因此,我创建了一个新类 CellRenderer 扩展 DefaultTableCellRenderer,并覆盖了方法 getTableCellRendererComponent。它工作正常,当我开始我的项目时颜色会发生变化,但我的问题是我还在 JTable 中添加了一个新的 Object[],现在我只能看到颜色发生了变化,而不是单元格中的值。

我该如何解决这个问题?

我的 CellRenderer 类方法 getTableCellRendererComponent

@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
        
        if(column >= 4 && column <= 9) {
           this.setBackground(Color.decode("#5CACEE"));
        }else if (column > 9 && column <= 17) {
           this.setBackground(Color.decode("#B0E2FF"));
        }else {
            this.setBackground(Color.decode("#B0C4DE"));
        }
        
        return this;
    }

我的 Main 类中的构造函数,我将 CellRenderer 设置为我的 JTable

dcr = new MyCellRenderer();
tblData.setDefaultRenderer(Object.class, dcr);

还有我将值添加到表中的 sn-p

dtm.addRow(new Object[]{false,"yes","only",ow,"CCSITT3","PANDA_TF001","failed","PANDA","5718200303","1"});

在这里你可以看到图形用户界面

【问题讨论】:

  • 更改背景前需要调用super.getTableCellRenderer

标签: java swing jtable background-color tablecellrenderer


【解决方案1】:

修好了!指的是这个。而不是组件

@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
            
            Component c = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
            
            if(column >= 4 && column <= 9) {
               c.setBackground(Color.decode("#5CACEE"));
            }else if (column > 9 && column <= 17) {
               c.setBackground(Color.decode("#B0E2FF"));
            }else {
                c.setBackground(Color.decode("#B0C4DE"));
            }
            
            return c;
        }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-12
    • 1970-01-01
    • 2011-05-31
    • 2013-09-29
    • 2015-01-13
    • 1970-01-01
    • 2011-06-05
    相关资源
    最近更新 更多