gpt4 book ai didi

java - 如何从主类访问监听器中定义的变量?

转载 作者:行者123 更新时间:2023-12-01 08:09:22 25 4
gpt4 key购买 nike

我的 MyFrame 类中的变量有问题。我想在 MyFrame 类中拥有在组合框监听器中定义的变量的值。

这是我的情况:我有一个带有一些 friend 名字的组合框。我已经在组合框中放置了一个监听器,它必须返回所选 friend 的姓氏。我想在MyFrame类的命令中插入surname的值,但是有一些问题:一旦将surname设置为final (因为它必须在监听器中使用),我有一个错误:

无法分配最终局部变量 surname,因为它是在封闭类型中定义的

这是什么(或是什么)问题?这里我发布我的代码:

public class MyFrame extends {
public static void main (String[] args)
{
//other
String [] names = {"john","al","jack"};
final String surname=null;
JLabel nameLbl = new JLabel("surname: " + surname);
JComboBox box = new JComboBox(names);
JPanel centralPnl = new JPanel();
centralPnl.add(nameLbl);
centralPnl.add(box);
box.addItemListener(new ItemListener()
{
@Override
public void itemStateChanged(ItemEvent e) {
if (e.getStateChange() == ItemEvent.SELECTED)
{
// Here operations from database
//that return friends' surname under the variable name of "result"
surname = result;
}
}
});
}
}

最佳答案

您正在尝试重新分配final变量,这就是问题所在。此外,您的 final 变量需要首先初始化。

关于java - 如何从主类访问监听器中定义的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18745594/

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