2014-01-27 108 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