是否可以从ActionListener
内部更改变量?
我的意思是这样的事:
boolean test = false;
button.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
test = true;
}
});
当有人按下按钮时,我想将test
更改为true。
答案 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( );
}
}
}