Ich erstellte Desktop-Anwendung mit Netbeans, und ich möchte eine bestimmte Zellfarbe ändern, wenn es String-Wert von "on Process" hat. Ich versuchteÄnderung der Zellfarbe funktioniert nicht auf Netbeans
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;
}
}
aber es ändert nicht meine tableI
verwendettable.getColumnModel().getColumn(7).setCellRenderer(new CustomTableCellRenderer());
I`m immer Werte aus der Datenbank und mit
for(int i=0; i<arraylist.size(); i++) {
table.setValueAt(status, i, 7);
}
hier Status ist String
, wenn ich manuell eingeben wie:
table.setValueAt("on Process", i, 7);
es ändert die Farbe, es ist in Ordnung, aber ich kann es nicht so tippen, ich muss Wert von Variable einstellen. Ich habe versucht String, Objekt, nutzlos! Ich versuchte toString()
, ich versuchte "" + Status, ... es ignoriert nur, was ich ihm zuweisen. Innerhalb Forloop, wenn ich "on Process" eintippen funktioniert es, aber außerhalb forloop kann ich von Variable zuweisen, ändert es die Farbe. Ich bin verwirrt, weiß nicht, was ich tun soll. Bitte helfen Sie mir.
Danke für die Antwort. Aber wenn ich if (obj.toString(). Equals ("on Process")), wird es NullPointerException werfen. – Jamol
@ user1290988 dann verwenden, 'if (obj! = Null && obj.toString(). Gleich (" auf Prozess "))' –
+1 guten Fang; mehr [hier] (http://stackoverflow.com/a/10150532/230513). – trashgod