我正在用java制作一个匹配游戏,它进展顺利。问题是当我点击第二张卡片时,如果它们不一样,卡片会转回来,但它永远不会告诉你第二张卡片是什么。我正在考虑在两张卡显示后延迟程序,但它不起作用。它只显示第一张卡片,延迟程序,然后执行它最初所做的事情。它不会显示第二张图片。我试过 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");
}
}
它有效。两句话之间有一点延迟。我怎样才能对我的卡片做同样的事情——它们实际上是按钮。我还删除了在卡片显示后将卡片转回并且卡片保持不变的代码。所以第二张卡片或图标没有问题。