请高手说明下,为何可以在定义构造函数时直接写addWindowListenerpublic class MingPrintClearDialog extends JFrame {
  
   public MingPrintClearDialog() {
      ...
      getContentPane().add(sp_textarea_1);
      setSize(getPreferredSize());
      ...注意下面的语句,从哪儿来的
      addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
      });
   }

解决方案 »

  1.   

    有什么问题?addWindowListener是Window类定义的,而Frame是Window的子类,JFrame又是Frame的子类,你这又继承了JFrame,相当于调用父类的父类的父类的方法,很正常啊,这里用到了一个匿名内部类
      

  2.   

    这个叫内部类,看那个分号,需要 实现那个接口中的 
    windowClosing方法。
      

  3.   

    JFrame继承java.awt.Window,可以使用java.awt.Window中的addWindowListener,那句话应该是this.addWindowListener(...)吧。
      

  4.   

    jframe包含addWindowListener 方法 子类自然也包含 可以在类内部直接调用 等价于this.addWindowListener