3 回答

TA贡献1772条经验 获得超8个赞
一个可能的解决方案是:
初始化“按钮按下”计数器。因此,在您的 actionPerformed 方法之外有一个变量,并在每次按下按钮时递增它。添加一些逻辑以在计数器值超过某个阈值时重置计数器值,即在您循环通过“最后”颜色后,返回到第一种颜色。
有一个 switch 语句,它将根据计数器的值设置背景(本质上,按下按钮的次数)。

TA贡献1775条经验 获得超8个赞
我要做的是创建一个检查和更改背景的函数,然后将我的所有按钮传递给它。
public void checkAndChangeColor(Object source, Object btn, int bgToCheck, int bgToChange1, int bgToChange2){
if (source == btn) {
if (source.getBackground() == bgToCheck)
setBackground(bgToChange1);
else
setBackground(bgToChange2);
}
}
然后我会在每个按钮上调用该方法。
checkAndChangeColor(e.getSource(), btn, Color.white, Color.red, Color.white);

TA贡献1816条经验 获得超6个赞
创建一个实现 ActionListener 的私有内部类,并在其中包含一组颜色。覆盖 actionPerformed 并有一个内部计数,所以 e.setBackground(colorList.get(count % colorList.size())
添加回答
举报