如何在两个功能之间添加延迟?我想要一个函数执行,并在一些延迟后执行另一个函数。
例如在以下代码中选择AI与CPU时,我希望输出延迟.... TimeUnit.SECONDS()
延迟整个过程而不是每个函数调用..
那么在以下代码中,如何在CPU和AI的每次函数调用之后添加延迟:
public void actionPerformed(ActionEvent e) {
option = 3;
ai.setBackground(Color.WHITE);
int q = (int) (Math.random() * 2);
//System.out.println(" I have been called " + q);
if (q == 1) {
System.out.println(" I am inside " + q);
text1.setText(" AI starts ");
AI(1);
CPU(0);
AI(1);
CPU(0);
AI(1);
CPU(0);
AI(1);
CPU(0);
} else {
// System.out.println(" I have been inside " + q);
text1.setText(" CPU starts ");
CPU(1);
AI(0);
CPU(1);
AI(0);
CPU(1);
AI(0);
CPU(1);
AI(0);
}
}
});
编辑:这实际上是一个tic tac toe游戏,其中计算机对抗AI ...因此输出会很快...我希望每一步都被调用并且延迟到那里以便每一步都是可见的。
答案 0 :(得分:0)
如前所述,Thread.sleep
是要走的路。您可以创建一个这样的简单方法:
public void sleep(long millis){
try {
Thread.sleep(millis);
} catch(InterruptedException ex) {
Thread.currentThread().interrupt();
}
}
只要你想要一些延迟就打电话给它。如果您想在每个步骤之间进行延迟,则必须在每个步骤之间调用它:
CPU(1);
sleep(300);
AI(0);
sleep(300);
/*And so on*/
重要提示:正如Christopher Schneider所说,如果这是一个单线程应用程序,你的gui将在你的线程处于休眠状态时不会响应。