gpt4 book ai didi

java - Java中禁用JButton的问题

转载 作者:行者123 更新时间:2023-12-04 06:36:13 25 4
gpt4 key购买 nike

再会!

单击按钮后,我想禁用它。我的代码如下..

for (char buttonChar = 'a'; buttonChar <= 'z'; buttonChar++) {
String buttonText = String.valueOf(buttonChar);
JButton letterButton = new JButton(buttonText);
letterButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String actionCommand = e.getActionCommand();
System.out.println("actionCommand is: " + actionCommand);
letterButton.setEnabled(false); //I disable the button here
}
});

但是出现错误: local variable letter Button is accessed from the inner class; needs to be declared final .. 这是什么意思?我该如何解决这个问题?
谢谢...

最佳答案

它实际上与禁用按钮无关,而是完全访问对按钮的引用。

您需要申报letterButton作为最终。也就是说,从

JButton letterButton = new ...

对此
final JButton letterButton = new ...

这里有一个很好的解释为什么它需要是最终的: Why inner class can access only final variable?

原因基本上如下:你的局部变量不能被其他线程触及。 ActionListener的代码可能会被另一个线程执行。通过创建变量 final ,您基本上是将其转换为一个值。然后可以由多个线程同时读取该值。

关于java - Java中禁用JButton的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4842055/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com