2014-01-27 106 views
-1
public class cellRender extends DefaultTableCellRenderer 
{ 
    @Override 
    public Component getTableCellRendererComponent(JTable tblPackage, Object value, boolean isSelected, boolean hasocus, int row, int col) 
    { 
     Component c = super.getTableCellRendererComponent(tblPackage, value, isSelected, hasocus, row, col); 
     if(tblPackage.getColumnModel().getColumn(col).getIdentifier().equals("Package Status")) 
     { 
      if(value.toString().equals("ACTIVE")) 
      { 
       c.setBackground(Color.GREEN); 
      } 
     } 
     return this; 
    } 
} 

該符號表明它找不到該符號...這有什麼問題?組件找不到符號錯誤Java

回答

0

我假設你在談論編譯時錯誤,但我沒有。這個類
編譯得很好(除了添加導入
語句外,我沒有對你的代碼做任何修改)。因此,檢查您是否有所有導入語句正確。

import java.awt.Color; 
import java.awt.Component; 

import javax.swing.JTable; 
import javax.swing.table.DefaultTableCellRenderer; 

public class cellRender extends DefaultTableCellRenderer 
{ 
    @Override 
    public Component getTableCellRendererComponent(JTable tblPackage, Object value, boolean isSelected, boolean hasocus, int row, int col) 
    { 
     Component c = super.getTableCellRendererComponent(tblPackage, value, isSelected, hasocus, row, col); 
     if(tblPackage.getColumnModel().getColumn(col).getIdentifier().equals("Package Status")) 
     { 
      if(value.toString().equals("ACTIVE")) 
      { 
       c.setBackground(Color.GREEN); 
      } 
     } 
     return this; 
    } 
} 
0

在你return語句應該是組件,因此使用下面的:

return c; 
0

在你的代碼

return this; 

這種說法是錯誤的。由於this引用當前對象,因此您需要返回組件。

所以你需要通過c更換this

return c; 

編輯:

試試這個,我不知道這可是...

tblPackage.setDefaultRenderer(Object.class, new TableCellRenderer(){ 
    private DefaultTableCellRenderer DEFAULT_RENDERER = new DefaultTableCellRenderer(); 

      @Override 
      public Component getTableCellRendererComponent(JTable tblPackage, Object value, boolean isSelected, boolean hasFocus, int row, int col) { 
       Component c = DEFAULT_RENDERER.getTableCellRendererComponent(tblPackage, value, isSelected, hasFocus, row, col); 
     if(tblPackage.getColumnModel().getColumn(col).getIdentifier().equals("Package Status")) 
     { 
      if(value.toString().equals("ACTIVE")) 
      { 
       c.setBackground(Color.GREEN); 
      } 
     } 

       return c; 
      } 

     }); 
+0

還是一樣: ( – jefferyleo

+0

@jefferyleo查看編輯! – Aarav