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

我在指示的行中遇到错误。它说“找不到符号”,但我无法意识到真正的问题是什么。


更新

@martinusadyh

恐怕这个类太大,所以它不允许我把它贴在这里。

@充满鳗鱼的气垫船

这是 Netbeans
http://i.stack.imgur.com/R4fv3.jpg中的错误

@亨利

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

4

2 回答 2

3

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

那么你的父类superObject并且没有方法getTableCellRendererComponent。您要么必须扩展一个合适的类,要么在不调用不存在的方法的情况下相处。

于 2011-11-05T15:16:30.513 回答
2

你必须extends DefaultTableCellRenderer代替implements TableCellRenderer.


注意DefaultTableCellRenderer它的方法getTableCellRendererComponent返回this。这意味着在super.getTableCellRendererComponent();不将其分配给局部变量的情况下调用就足够了。因为局部变量等于this。也许我的解释太难了:例子。

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

}
于 2011-11-05T15:36:20.550 回答