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.