有人可以帮我理解以下构造吗?我无法理解这是初始化程序还是匿名类。我不熟悉这种语法。
JTable jt = new JTable(data, fields) **{
public TableCellRenderer getCellRenderer(int row, int column) {
// TODO Auto-generated method stub
return renderer;
}
};**
答案 0 :(得分:6)
它创建了一个扩展JTable的匿名内部类,并覆盖了getCellRenderer方法。
冗长的解释:
您正在创建一个扩展JTable的类,而不显式为其指定名称而不是使用标准类声明:
public class ExtendedJTable extends JTable{}
此类的可见性仅限于定义和实例化的类。 它非常有用,例如,当您需要时,例如在您发布的代码中,覆盖特定类(JTable)的方法(getCellRenderer()),仅限于当前类上下文。
这种方法有一些好处,也有一些局限性。有关更深入的讨论,请查看此article。
答案 1 :(得分:2)
你在这做两件事: