我正在做一個(gè)學(xué)習(xí)java的小程序,我想打印一些東西,等待幾秒鐘(通過(guò)打印顯示......)然后繼續(xù)該程序。我通過(guò)使用Timer和做到了這一點(diǎn)TimerTask。我想知道如何讓程序的執(zhí)行等到我的計(jì)時(shí)器線程結(jié)束。我嘗試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 }}這是我得到的錯(cuò)誤:java.lang.IllegalMonitorStateException我想要的結(jié)果是打印這個(gè):“text”。。。“文本2”如果我刪除wait(這會(huì)導(dǎo)致錯(cuò)誤),則會(huì)打?。?"text1" "text2" 。。。在此先感謝您的任何信息。
1 回答

慕哥9229398
TA貢獻(xiàn)1877條經(jīng)驗(yàn) 獲得超6個(gè)贊
你可以這樣做:
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");
}
}
添加回答
舉報(bào)
0/150
提交
取消