组件找不到符号错误Java

时间:2014-01-27 08:17:16

标签: java jtable components renderer

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;
    }
}

符号表示找不到符号......问题是什么?

3 个答案:

答案 0 :(得分: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;
    }
}

答案 1 :(得分:0)

在你的return语句中,它应该是组件,所以使用下面的代码:

 return c;

答案 2 :(得分:0)

在您的代码中

return this;

此声明错误。因为this引用了当前对象,您需要返回该组件。

因此,您需要将this替换为c

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;
            }

        });