给对象一个方法

时间:2014-05-26 09:21:54

标签: java swing user-interface instantiation

无法找到关于我所追求的事物的信息,因为我不确定该过程被称为什么。例如,请查看下面的代码。

制作GUI时,使用以下内容(从互联网复制/粘贴):

regionSelectionTable = new JTable()
{
    public Component prepareRenderer(TableCellRenderer renderer, int row, int col)
    {
        //Do some stuff
        Component comp = super.prepareRenderer(renderer, row, col);
        JComponent jcomp = (JComponent)comp;

        if (comp == jcomp) 
        {
            jcomp.setToolTipText((String)getValueAt(row, col));
        }

        return comp;
    };
};

我对prepareRenderer()方法中发生的事情不太感兴趣;但是,是JTable对象在上面的代码中给出了一个方法吗? 如果是的话:

  • 这个过程叫什么?
  • 为什么不将该方法作为参数传递给构造函数 或通过setter方法?

如果这不是正在发生的事情,请解释正在发生的事情以及这个过程的名称。

2 个答案:

答案 0 :(得分:3)

不,不是真的,您正在创建所谓的Anonymous Class,在这种情况下,它会覆盖prepareRenderer方法。

从技术上讲,你可以在课堂上添加新方法,但除非你在内部调用它们,否则你将无法从外部访问它们,因为从外部来看,它只是JTable

答案 1 :(得分:2)

您通过创建扩展JTable的无名类来覆盖现有方法。