Atualizando os componentes do swing corretamente?

Eu sou novo para balançar, qualquer ajuda apreciada.

Neste trecho de código, estou virando uma carta virada para cima, se não combinarem, quero que voltem a cara novamente.

No momento o que está acontecendo: 1. Quando clicado, o primeiro cartão vira 2. Quando um segundo cartão é clicado, uma de duas coisas acontece (a) se elas são as mesmas, ambas ficam em pé, o que eu quero (b) se eles não são os mesmos. Eu nunca vejo o segundo cartão, pois ele imediatamente exibe novamente o verso do cartão (e a parte de trás do cartão anterior, conforme definido no meu método).

Eu pensei em colocar o temporizador de sono pode manter o segundo cartão exibido por um período de tempo antes de voltar, mas isso não acontece.

Eu tentei usar contentPane.revalidate (); & contentPane.repaint (); mas isso não muda nada.

Eu coloquei algumas saídas de console:

Console output:
Card: 0 set
Card: 6 set
Sleeping now
Card: 6 unset
Card: 0 unset

Acima está a saída resultante do console ao clicar em dois cartões que não correspondem

@Override
public void actionPerformed(ActionEvent e) 
{
    String buttonPressed = e.getActionCommand();
    int pos = Integer.valueOf(buttonPressed);
    action = Control.model.ReceiveCardsTurned(pos);

    keypadArray[pos].setIcon(myIcons[pos]);     
    System.out.println("Card: "+pos+" set");
    currentTime.setText("" + Control.model.time);
    currentScore.setText("" + Control.model.score);

    //contentPane.revalidate();
    //contentPane.repaint();        

    if(Control.model.twoCardsTurned == false)
    {
        if (action == "unturn") 
        {
            System.out.println("Sleeping now");

            try 
            {
                Thread.sleep(1000);
            }

            catch (InterruptedException e1) 
            {
                e1.printStackTrace();
            }

            keypadArray[pos].setIcon(back);
            keypadArray[Control.model.lastCard].setIcon(back);
            System.out.println("Card: "+pos+" unset");
            System.out.println("Card: "+Control.model.lastCard+" unset");
        }
    }
}

questionAnswers(2)

yourAnswerToTheQuestion