从ActionListener内部更改变量

时间:2015-12-25 16:35:45

标签: java actionlistener

是否可以从ActionListener内部更改变量?

我的意思是这样的事:

    boolean test = false;

    button.addActionListener(new ActionListener(){
        public void actionPerformed(ActionEvent e){
            test = true;
        }
    });

当有人按下按钮时,我想将test更改为true。

2 个答案:

答案 0 :(得分:1)

我不确定这是否对您有所帮助,但如果您正在使用动作监听器,我猜测您正在使用javas swing api。在这种情况下,您可能正在扩展类似JFrame之类的类或类似的类,以便您可以使用它:

import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class MyFrame extends JFrame {

    private boolean booleanToChange = false;

    private JButton exampleButton;

    public MyFrame() {
        exampleButton = new JButton();
        exampleButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent actionEvent) {
                //Access a member in anonymous class
                MyFrame.this.booleanToChange = true;
            }
        });
    }
}

并且here解释为什么它必须是最终的:)希望这有点帮助

答案 1 :(得分:0)

这可能是你想要的??

private boolean booly = true; 

private class WinkAction implements ActionListener
{
    public void actionPerformed(ActionEvent e) 
    {

        if (booly){
            booly = false; 
        }else {
            booly = true;
            repaint( );         
        }   
    }
}