我正在做一个学习java的小程序,我想打印一些东西,等待几秒钟(通过打印显示......)然后继续该程序。我通过使用Timer和做到了这一点TimerTask。我想知道如何让程序的执行等到我的计时器线程结束。我尝试timer.wait()在某些地方添加但不起作用。public class Main{ public static void main(String[] args) { System.out.println("text1"); clock currentClock = new clock(); currentClock.run(); // i want the program to stop until this is over, adding currentClock.wait(); doesnt work System.out.println("text2"); }}class clockHelper extends TimerTask{ // printing class, called by clock class int actual = 0; public void run() { if (actual < 3) { System.out.println("."); actual++; } else { cancel(); } }}class clock{ // called by main class public static void run() { Timer watch = new Timer(); TimerTask timer2 = new clockHelper(); watch.schedule(timer2, 1000, 500); // adding watch.wait(); doesn't work, i can also stop it here and it should work fine }}这是我得到的错误:java.lang.IllegalMonitorStateException我想要的结果是打印这个:“text”。。。“文本2”如果我删除wait(这会导致错误),则会打印: "text1" "text2" 。。。在此先感谢您的任何信息。
1 回答
慕哥9229398
TA贡献1877条经验 获得超6个赞
你可以这样做:
public class Main
{
public static void main(String[] args) throws InterruptedException
{
System.out.println("text1");
for (int i = 0; i < 3; i++) {
System.out.print(".");
Thread.sleep(1000);
}
System.out.println();
System.out.println("text2");
}
}
添加回答
举报
0/150
提交
取消