为什么我会得到一个“a”;找不到符号“;Java中的错误?

为什么我会得到一个“a”;找不到符号“;Java中的错误?,java,swing,tablecellrenderer,Java,Swing,Tablecellrenderer,我在指示的行中得到一个错误。上面写着“找不到符号”,但我不知道真正的问题是什么 已更新 @马丁努萨迪 恐怕班级太大了,我不能把它贴在这里 @装满鳗鱼的气垫船 以下是Netbeans中的错误 @亨利 这不是我的课。我只是实现了一个接口方法 那个类不是我的,我只是实现了一个接口的方法 然后您的父类super是Object,并且没有方法gettableCellRenderComponent。您必须扩展一个合适的类,或者在不调用不存在的方法的情况下继续工作。您必须扩展DefaultTableCell

我在指示的行中得到一个错误。上面写着“找不到符号”,但我不知道真正的问题是什么


已更新

@马丁努萨迪

恐怕班级太大了,我不能把它贴在这里

@装满鳗鱼的气垫船

以下是Netbeans中的错误

@亨利

这不是我的课。我只是实现了一个接口方法

那个类不是我的,我只是实现了一个接口的方法


然后您的父类
super
Object
,并且没有方法
gettableCellRenderComponent
。您必须扩展一个合适的类,或者在不调用不存在的方法的情况下继续工作。

您必须
扩展DefaultTableCellRenderer
,而不是
实现TableCellRenderer


注意
DefaultTableCellRenderer
其方法
GetTableCellRenderComponent
返回
。这意味着调用
super.getTableCellRenderComponent()就足够了而不将其分配给局部变量。因为局部变量等于此
。也许我的解释太难了:举例来说

@Override
public Component getTableCellRendererComponent(
        JTable table, Object value, boolean isSelected,
        boolean hasFocus, int row, int col) {

    // *** here  *** 
    Component c = super.getTableCellRendererComponent(table, value, isSelected, 
               hasFocus, row, col); 

    // Formatting here
    return c;
}

请在上面的帖子中显示错误消息的实际文本。它说的不仅仅是“找不到符号”吗?每一点信息都是必不可少的。而且你不能将发布的代码加粗。你是否确保你的超类包含具有相同签名的确切方法GetTableCellRenderComponent?@Maxi Dee:你能粘贴完整的源代码吗?我的意思是,我们需要知道您实现或扩展了哪个类。这个方法getTableCellRenderComponent()是在哪个类中实现的?或者,如果是这样的话,至少可以说您正在扩展哪个类?这是有道理的——但是为什么@Override注释中不会出现错误呢?
getTableCellRenderComponent
方法当然不会覆盖Object的方法。如果他使用的是Java6@Hovercraft,那么
覆盖
可能是接口方法,因此没有同名的超级方法。@a.H.:啊哈,没错!这就是让我绊倒的原因。伟大的思想和1+。@HovercraftFullOfEels,我正在使用java7@MaxiDee:使用Java 7与中国的茶叶价格有什么关系?我不能扩展DefaultTableCellRenderer,因为我已经扩展了JPanel来显示表格了@马克西迪:那么很明显你不能调用超级方法。解决方案:不要尝试这样做。@HovercraftFullOfEels总结一下,那么,我将不得不尝试使用其他技术来绘制单元格。。谢谢@马克西迪:不,你必须创建一个新类。(这意味着一个新的
.java
文件)。然后使用该类的一个实例作为表的单元格渲染器。@MartijnCourteaux我将尝试创建一个新类,看看如何使其工作,然后我告诉您。谢谢你的提示。
public class MyTableCellRenderer extends DefaultTableCellRenderer
{

    @Override
    public Component getTableCellRendererComponent(
            JTable table, Object value, boolean isSelected,
            boolean hasFocus, int row, int col) {

        super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, col); 

        // Formatting here
        setIcon(myCustomIcon);
        setText(myCustomText);

        return this;
    }

}