为了账号安全,请及时绑定邮箱和手机立即绑定

无法使用 ActionListener 访问 this.draw()

无法使用 ActionListener 访问 this.draw()

侃侃无极 2022-01-12 16:58:24
我正在尝试让按钮刷新窗口,但收到以下错误消息:Test.java:21: error: cannot find symbol                    this.draw();                        ^  symbol: method draw()1 error这是代码:import javax.swing.*;import java.awt.event.*;public class Test {    JFrame frame;    public void createMainWindow() {        frame = new JFrame();        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);        frame.setSize(800,600);        JButton refresh = new JButton("Refresh");        refresh.setBounds(620, 20, 100, 30);        refresh.addActionListener(new ActionListener() {                public void actionPerformed(ActionEvent e) {                    this.draw();                }            }            );        frame.setLayout(null);        frame.add(refresh);        frame.setVisible(true);        frame.setTitle("Title");    }    public void draw() {        // Code                                                                                                                                                                                                            frame.setVisible(true);    }}我显然误解了这一点。
查看完整描述

2 回答

?
温温酱

TA贡献1752条经验 获得超4个赞

this.draw();

指ActionListner。

你要:

Test.this.draw();

引用 Test 类中的方法。


查看完整回答
反对 回复 2022-01-12
?
慕的地8271018

TA贡献1796条经验 获得超4个赞

当您创建显式匿名类时,this指的是ActionListener. 要绘制外部类,请使用Test.this.draw(),或者更简单地说,用 lambda 替换整个侦听器(从技术上讲,它会创建一个匿名类,但不会接管this):

refresh.addActionListener(e -> this.draw());


查看完整回答
反对 回复 2022-01-12
  • 2 回答
  • 0 关注
  • 128 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信