本文介绍了从ActionListener内部更改变量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
是否可以在 ActionListener
内部更改变量?
Is it possible to change a variable from inside of a ActionListener
?
我的意思是这样的:
boolean test = false;
button.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
test = true;
}
});
我想将 test
更改为true
I want to change test
to true when someone presses the button.
推荐答案
我不确定这是否对您有帮助,但是如果您使用动作侦听器,猜测您正在使用Javaswing API。在那种情况下,您可能正在扩展类似 JFrame
之类的东西,或者类似的东西,因此您可以使用以下代码:
I'm not sure if this helps you but if you are using a action listener I'm guessing you are working with javas swing api. In that case you are maybe extending a class like JFrame
or something like that so you could use this:
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;
}
});
}
}
和解释为什么必须是最终的:)希望这会有所帮助
And here the explanation why it has to be final :) hope this helps a bit
这篇关于从ActionListener内部更改变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!