java - 更改单元格颜色在 Netbeans 上不起作用

标签 java swing colors jtable tablecellrenderer

我使用 Netbeans 创建了桌面应用程序,如果特定单元格的字符串值为“on Process”,我想更改它。 我试过了

class CustomTableCellRenderer extends DefaultTableCellRenderer{
    public Component getTableCellRendererComponent (JTable table, Object obj,
            boolean isSelected, boolean hasFocus, int row, int column) {
        Component cell = super.getTableCellRendererComponent(
            table, obj, isSelected, hasFocus, row, column);
        if (obj=="on Process") {
            cell.setBackground(Color.green);
        } 
        return cell;
    }
}

但它并没有改变我用过的 table

table.getColumnModel().getColumn(7).setCellRenderer(new CustomTableCellRenderer());

我正在从数据库获取值并使用

for(int i=0; i<arraylist.size(); i++) {
    table.setValueAt(status, i, 7);
}

这里的状态是String,如果我手动输入:

table.setValueAt("on Process", i, 7);

它改变了颜色,很好,但我不能那样输入,我需要从变量设置值。我尝试了String、Object,没有用! 我尝试了 toString(),我尝试了“”+status,...它只是忽略了我分配给它的内容。 在 forloop 内部,如果我输入“on Process”,它会起作用,但在 forloop 外部,我可以从变量分配,它会改变颜色。我很困惑,不知道该怎么办。 请帮助我。

最佳答案

你需要这个:

if(obj.toString().equals("on Process"))

而不是:

if(obj=="on Process")

关于java - 更改单元格颜色在 Netbeans 上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10143105/

相关文章:

java - 递归和/或 getBackground() 未按预期工作

html - CSS类不改变字体颜色

java - 如何在splunk通⽤转发器上进行自己的加密和解密

Java如何让JLabels展开

java - 在更大的图像上移动视口(viewport); JLabel+JScrollPane

java - 如何动态添加JButton到JPanel?

java - 使用 Java 闪烁任务栏(a la pidgin || MSN)

java - 使用比较器对对象进行 ArrayList 排序

java - 如何修复 Action 监听器输出?

html - 颜色在 Safari 中不显示,但在 MSIE、FF 和 Chrome 浏览器中一切正常