我正在嘗試讓按鈕刷新窗口,但收到以下錯誤消息: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
提交
取消