私はJavaでマッチングゲームを作っていますが、かなりうまくいっています。問題は、2 枚目のカードをクリックしたときに、それらが同じでない場合、カードが裏返されますが、2 枚目のカードが何であるかが表示されないことです。2 枚のカードが表示された後、プログラムを遅らせることを考えていましたが、うまくいきません。最初のカードだけを表示し、プログラムを遅らせてから、最初に行ったことを実行します。2枚目の画像は表示されません。私は wait() と Thread.sleep(1000) を試しましたが、どれも私が望む効果を生み出しません。
// code above where it finds the first card and shows it
y.setIcon(FindTheCard(es2,'c')); //showing the second card
try{Thread.sleep(3000L); // delaying
}catch(Exception e){}
私はスレッドにかなり慣れていないので、最初に実行されるのはスレッドであり、次に残りのコードであると思いますが、これは私が望んでいるものではありません。y.setIcon(..) を実行してから、残りのコードを実行する前に少し遅延させたいと考えています。私のコードに関するすべてが完璧に機能するので、それは私の知識不足によるものだと思います。私が必要とするのは遅延だけです。
ただし、次のコードも試しました。
public class testing {
public static void main(String[] args) {
System.out.println("Do this stuff");
try { Thread.sleep(500); }
catch ( Exception e ) { }
System.out.println("Now do everything after this");
}
}
そしてそれは動作します。2 つの文の間には少し遅れがあります。実際にはボタンであるカードで同じことを行うにはどうすればよいですか。カードが表示された後にカードを元に戻すコードも削除しましたが、カードは同じままです。したがって、2 枚目のカードまたはアイコンに関しては問題ありません。