为什么我会得到一个“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;
}
}