对于java匿名内部类引用外部类this.***出错处理
1、如图所示,这是小编建立的一个关于界面的程序,其中调用匿名类的部分;
大家都看到了,这里会出现一个错误;
整体代码如下:
package jframe01;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class jframe01 extends JFrame{
private JPanel jp=new JPanel();
public jframe01(){
this.add(jp);
this.setTitle("动态添加标签");
this.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
jp.add(new JLabel("这里的按钮不能被使用"));
this.setVisible(true);
}
});
this.setBounds(100, 100, 500, 100);
this.setVisible(true);
}
public static void main(String[] args) {
new jframe01();
}
}
2、点击错误符号,我们会看到一个错误提示:
The method setVisible(boolean) is undefined for the type new WindowAdapter(){};
3、大家会看到,不会没有这个类的,因为在下面同样的代码中没有报错,如图所示:
1、在匿名类内部引用this.***时填上外部类名字,比如,在这里外部类是jframe01,于是乎就改成jframe01.this.**,这样错误就没有了;
所以,就吸取经验了,以后凡是用到内部类引用外部类时,都给他加上外部类的名字,估计就不会出错了;
2、点击,执行下,看看对不对啊。