当前位置: 首页 > 知识库问答 >
问题:

CellRenderer setBackground替换JTable中的值

辛承志
2023-03-14

所以我想更改特定列背景的颜色。因此,我创建了一个新类CellRenderer extends DefaultTableCellRederer,并覆盖了方法getTableCellrenderComponent。它工作得很好,当我启动Project时颜色会改变,但我的问题是,我还在JTable中添加了一个新的Object[],现在我只能看到颜色改变了,而不能看到单元格中的Values。

我怎样才能解决这个问题?

我的CellRender类方法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类中的构造函数,我将CellRender设置为我的JTable

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

以及我将值添加到表中的代码

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

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

共有1个答案

宦翔飞
2023-03-14

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

@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;
        }
 类似资料:
  • 我在运行我的项目时面临着这个问题。情况是,我有一个按钮,让我打印表中的输出。但是,每次单击按钮时,表都是追加的,而不是替换旧值。对于jtextarea,我使用了一种简单的方法来解决它,即使用而不是使用。这就是我如何将值传递到表我将row声明为vector。谁能告诉我如何让它替换值而不是追加。

  • 我想替换我所有Wordpress帖子正文/内容(超过100万)中的所有URL href属性到我的新域“联系我们”URL,如: 喜欢 我可以用php做这个吗?或者有什么插件吗? 我无法将旧域名重定向到新域名,因为它已经过期,我无法访问它。我必须改变URL的href属性在每个Wordpress帖子。

  • 我已经尝试了很多方法,以“德语”样式在JTable中显示逗号而不是点。在我的JTable类中,我编写了一个方法,用于循环传递的结果集,以填充DefaultTableModel并直接返回模型或JTable。 如果我将一个BigDecimal转换为一个字符串,用逗号替换一个点,结果将在我的JTable中正确显示-但是我的排序序列不正确,因为值将被排序为字符串而不是BigDecimal... 另一个解决

  • 问题内容: 我的apicontroller返回了以下JSON对象: 我要替换为 我已经尝试了下面的代码,但它仅代替的第一次出现。如何替换所有条目? 谢谢, 问题答案: 您需要使替换全局: 这样,它将继续替换null直到到达结尾 正则表达式文档: https://developer.mozilla.org/zh- CN/docs/Web/JavaScript/Reference/Global_Obj

  • 问题内容: 我是bash脚本的新手,但我不理解为什么它不起作用 第3行的替代替换错误 问题答案: 该替换在Bash 4.2.8中正常工作(并且根据文档看起来还不错)。 我最好的猜测是您实际上并没有使用Bash-您如何调用脚本?如果您正在执行此操作,则可能会与Dash或类似的程序一起运行(Dash确实在第3行给出了替换错误)。尝试使用Bash()显式运行它。 如果事实证明您实际上是在使用Dash,这

  • 我正在测试以下页面中的示例代码:https://svn.apache.org/viewvc/pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/signature/ 但是在文件createsignaturebase.java中,在函数和中,它调用了一个不再存在的属性:。我仔细阅读了Pdfbox页面和它的迁移指南,它没有提到这