对于java匿名内部类引用外部类this.***出错处理

 时间:2026-02-12 07:01:51

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();

}

}

对于java匿名内部类引用外部类this.***出错处理

2、点击错误符号,我们会看到一个错误提示:

The method setVisible(boolean) is undefined for the type new WindowAdapter(){};

对于java匿名内部类引用外部类this.***出错处理

3、大家会看到,不会没有这个类的,因为在下面同样的代码中没有报错,如图所示:

对于java匿名内部类引用外部类this.***出错处理

1、在匿名类内部引用this.***时填上外部类名字,比如,在这里外部类是jframe01,于是乎就改成jframe01.this.**,这样错误就没有了;

所以,就吸取经验了,以后凡是用到内部类引用外部类时,都给他加上外部类的名字,估计就不会出错了;

对于java匿名内部类引用外部类this.***出错处理

2、点击,执行下,看看对不对啊。

对于java匿名内部类引用外部类this.***出错处理

  • jquery只能输入数字
  • Navicat Premium中如何在模型中创建触发器模型
  • 安装 Dubbo 管理控制台dubbo-admin
  • discuz!x2.5更换域名如何解决?
  • kafka初学者必须知道的常用命令分享
  • 热门搜索
    盆腔炎怎么办 apec怎么读 怎么回到过去 土豆怎么保存不发芽 怎么去头皮屑 怎么才能戒烟 我的世界鱼怎么养 辞职后社保怎么处理 千年舟板材怎么样 爱玛特净水器怎么样