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())
添加回答
舉報