Я новичок в качелях, любая помощь приветствуется.
В этом фрагменте кода я переворачиваю карту лицевой стороной вверх, и если выяснится, что они не совпадают, я хочу, чтобы они снова перевернулись лицевой стороной вниз.
На данный момент что происходит: 1. при нажатии на первую карту переворачивается 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");
}
}
}