私は記憶ゲームに取り組んでおり、それを設定したいので、最初の をクリックし"card"
、次に 2 番目のカードをクリックし、2 番目のカードが数秒間同じでない場合は、その"non-flipped"
位置に戻ります。
を使用してみましたがSwingWorker
、動作しません。2 枚目のカードが重複している場合は、スリープ時間だけ待ってから消えます。一致しない場合は、「伏せて」待機し、スリープ タイマーの後に最初のカードが裏返されます。これは、Thread.sleep を配置する場所に関係なく発生します。Thread.sleep
SwingTimer
Thread.sleep
"flip"
カードを操作している間は「タイマーを変更する」ようにSwing Timer
見えるだけなので、アクティブにする前に8枚のカードをめくってしまいます.
運が悪かったしSwingWorker
、探しているものでうまくいくかどうかさえわかりません。
これは私が持っているコードです:
class ButtonListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
for(int index = 0; index < arraySize; index++)
{
if(button[index] == e.getSource())
{
button[index].setText(String.valueOf(cards.get(index)));
button[index].setEnabled(false);
number[counter]=cards.get(index);
if (counter == 0)
{
counter++;
}
else if (counter == 1)
{
if (number[0] == number[1])
{
for(int i = 0; i < arraySize; i++)
{
if(!button[i].isEnabled())
{
button[i].setVisible(false);
}
}
}
else
{
for(int i = 0; i < arraySize; i++)
{
if(!button[i].isEnabled())
{
button[i].setEnabled(true);
button[i].setText("Card");
}
}
}
counter = 0;
}
}
}
}
}
基本的に必要なのは、カウンター == 1 でカードが一致しない場合にこのコードを実行することです。
button[index].setText(String.valueOf(cards.get(index)));
button[index].setEnabled(false);
その後、一時停止しcard is revealed
、最後にカードを裏向きの位置に戻します。
これは私が試したものですThread.sleep()
:
class ButtonListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
for(int index = 0; index < arraySize; index++)
{
if(button[index] == e.getSource())
{
button[index].setText(String.valueOf(cards.get(index)));
button[index].setEnabled(false);
number[counter]=cards.get(index);
if (counter == 0)
{
counter++;
}
else if (counter == 1)
{
if (number[0] == number[1])
{
for(int i = 0; i < arraySize; i++)
{
if(!button[i].isEnabled())
{
button[i].setVisible(false);
}
}
}
else
{
try
{
Thread.sleep(800);
}
catch (InterruptedException e1)
{
e1.printStackTrace();
}
for(int i = 0; i < arraySize; i++)
{
if(!button[i].isEnabled())
{
button[i].setEnabled(true);
button[i].setText("Card");
}
}
}
counter = 0;
}
}
}
}
}
事前にアドバイスをありがとう