我正在尝试制作一个JFrame
,并且当用户单击一个按钮时,JFrame
中显示的圆圈每秒都会更改颜色。但是目前,我无法更改存储在变量中的当前在窗口中显示的颜色。
Color lastColor = Color.ORANGE;
g.setColor(lastColor);
smallerButton.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
String action = e.getActionCommand();
if (action.equals("Flash")) {
//when clicked change color of the circle listed above.
//or change the variable of last color.
}
}});
}
};
这不是全部代码。我要尝试做的是,当用户单击按钮时,变量
lastColor
然后更改为让我们说GRAY
。我在尝试执行此操作时遇到了麻烦,因为当我将变量名称放入动作侦听器时,它找不到变量lastColor
来更改为新变量。如何在动作监听器中更改变量lastColor
? 最佳答案
您必须将lastColor
声明为类的成员变量。您正在本地创建它,因此clickListener无法看到它。
编辑:
public class foo(){
Color lastColor;
public foo(){
lastColor = Color.ORANGE();
}
public void paintFoo(){
// do your paint stuff here and access lastColor
}
}