Правильно ли обновлять компоненты свинга?

Я новичок на качелях, любая помощь приветствуется.

В этом фрагменте кода я переворачиваю карту лицевой стороной вверх, если выясняется, что они не совпадают, я хочу, чтобы они снова повернули лицевой стороной вниз.

В момент, когда происходит: 1. при нажатии первая карта переворачивается 2. при нажатии второй карты происходит одно из двух: (а) если они одинаковые, они оба остаются, что я хочу (б), если они не совпадают, я никогда не вижу 2-ую карту вообще, так как она немедленно повторно отображает оборотную сторону карты (и оборотную сторону предыдущей карты также, как определено в моем методе).

Я думал, что включение таймера сна может держать 2-ую карту отображенной в течение некоторого времени, прежде чем вернуться, но это не так.

Я попытался использовать contentPane.revalidate (); & contentPane.repaint (); но это ничего не меняет.

Я вставил в некоторые выводы консоли:

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

Выше приведен результирующий вывод консоли при нажатии двух карт, которые не совпадают

@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");
        }
    }
}

Ответы на вопрос(2)

Ваш ответ на вопрос