我使用Netbeans創建了桌面應用程序,並且如果字符串值爲「on Process」,我想更改特定的單元格顏色。 我試圖更改單元格顏色在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;
}
}
,但它並沒有改變我的表Ⅰ使用
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()
,我試過「」+狀態,......它只是無視我分配給它的東西。 裏面forloop如果我鍵入「在過程」它的作品,但外部forloop我可以從變量分配,它會改變顏色。我很困惑,不知道該怎麼做。 請幫幫我。
感謝您的回覆。但如果我使用if(obj.toString()。equals(「on Process」))它拋出NullPointerException。 – Jamol 2012-04-13 16:59:44
@ user1290988然後使用'if(obj!= null && obj.toString()。equals(「on Process」))' – 2012-04-13 18:44:22
+1 good catch;更多[這裏](http://stackoverflow.com/a/10150532/230513)。 – trashgod 2012-04-14 02:31:17