Witam, mam taki problem. Tworzymy z kolegą grę memory. Po odczytaniu przez program, że guzik dostał getSource(), program powinien zmienić obrazek buttonu i dalej wykonać operacje. Za pierwszym kliknięciem wszystko jest ok, ale za drugim w ogóle nie zmienia obrazka. co może być przyczyną?
for (int i = 0; i < level; i++)
{
if (gameBtn[i] == e.getSource())
{
gameBtn[i].setEnabled(false);
lol=gameList.get(i)+".jpg";
img = new ImageIcon(lol);
gameBtn[i].setIcon(img);
counter++;
if (counter == 1)
{
btnID[0] = i;
btnValue[0] = gameList.get(i);
}
if (counter ==2)
{
btnID[1] = i;
btnValue[1] = gameList.get(i);
try {
Thread.sleep(500L);
}
catch (Exception g) {}
if (sameValues())
{
gameBtn[btnID[0]].setEnabled(false);
gameBtn[btnID[1]].setEnabled(false);
gameBtn[btnID[0]].setVisible(false);
gameBtn[btnID[1]].setVisible(false);
Hit++;
HitScore.setText("Hit:"+Hit);
}
else
{
gameBtn[btnID[0]].setEnabled(true);
gameBtn[btnID[0]].setText("");
gameBtn[btnID[1]].setEnabled(true);
gameBtn[btnID[1]].setText("");
Miss++;
MissScore.setText("Miss:"+Miss);
}
counter = 0;
gameBtn[btnID[0]].setIcon(ButtonIcon);
gameBtn[btnID[1]].setIcon(ButtonIcon);
}
}
tu jest tak, że licznik (counter) powinien się zwiększyć o 1. gdy są trzy instrukcje warunkowe (czyli dołożę if (counter==3)) i tam przypisze się funkcję porównania to działa dobrze, ale to nie o to chodzi.