Ciao a tutti!
Sto creando il gioco memory, ma sto avendo un problema, cioè:
quando vengono cliccate due carte diverse, la seconda carta si deve girare, cioè mostrare il simbolo, aspettare per qualche secondo in questa posizione e poi ritornare a mostrare il retro della carta.
Il mio problema consiste che la carta non si gira e non mostra il simbolo, ma aspetta ugualmente 5 secondi per come specificato nel sottoprogramma tempo(), a livello di codice non esegue una riga.

Codice:
public class Pressione1 implements ActionListener {
public void actionPerformed(ActionEvent e){
if(plsCorrente != pls1){
if(valoreCorrente == 0){
pls1.setIcon(caricaIcona(String.valueOf(matrice[0][0]) + ".png"));
valoreCorrente = matrice[0][0];
plsCorrente = pls1;
}
else if(valoreCorrente == matrice[0][0]){
pls1.setIcon(caricaIcona(String.valueOf(matrice[0][0]) + ".png"));
pls1.setEnabled(false);
valoreCorrente = 0;
plsCorrente.setEnabled(false);
}
else if(valoreCorrente != matrice[0][0] && valoreCorrente != 0){
pls1.setIcon(caricaIcona(String.valueOf(matrice[0][0]) + ".png")); //codice non eseguito
tempo();
pls1.setIcon(caricaIcona("retro.png"));
}
}
}
}

Se commento la chiamata al sottoprogramma tempo() e la riga sotto questa chiamata, la carta si gira è mostra la figura.

Ora posto il codice del sottoprogramma tempo.
Cattura4.PNG

Probabilmente il problema è nel sottoprogramma tempo(), come da figura, uso: Thread.sleep(5000); ho cercato su internet, ma solo questo metodo mi funziona.

In caso qualcosa non sia chiaro, posto l'intero progetto o file.
Spero in un vostro aiuto.
Grazie mille a tutti