if("switch".equals(action))
{
changeLunar();
count++;
if (count % 2 == 0)
{
lunarButton = new JButton(new ImageIcon("assets/sun.png"));
}
else
{
lunarButton = new JButton(new ImageIcon("assets/moon.png"));
}
}
因此,当我点击一个按钮,按钮更改为另一个图像,然后再次单击它时,它会返回到第一个图像。但是当我编译它时说:
lunarButton can't be resolved to a variable
我该怎么办?
答案 0 :(得分:0)
错误讯息:找不到符号
编译Java程序时,编译器会创建一个包含所有正在使用的标识符的列表。如果它无法找到标识符所指的内容(例如,变量没有声明语句),则无法完成编译。这是无法找到的符号错误消息所说的,它没有足够的信息来拼凑Java代码想要执行的内容。
请验证代码中声明的变量lunarButton
,并且也必须可访问。
您可能已使用changeLunar()
方法创建了该方法作为无法在方法外访问的本地变量,而是使用实例变量或仅返回值< / strong>来自changeLunar()
方法。
每次您只需使用JButton
方法更改其图标,而不是创建新的JButton#setIcon()
。