我使用 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/