我正在尝试让按钮刷新窗口,但收到以下错误消息: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 回答
慕的地8271018
TA贡献1796条经验 获得超4个赞
当您创建显式匿名类时,this
指的是ActionListener
. 要绘制外部类,请使用Test.this.draw()
,或者更简单地说,用 lambda 替换整个侦听器(从技术上讲,它会创建一个匿名类,但不会接管this
):
refresh.addActionListener(e -> this.draw());
添加回答
举报
0/150
提交
取消