我執行以下代碼執行:的Java:語句不是爲了
lnum.setVisible(false);
Lsums.setVisible(false);
Ldigits.setVisible(false);
Lrows.setVisible(false);
L1.setVisible(false);
t1.setVisible(false);
t2.setVisible(false);
t3.setVisible(false);
Button.setVisible(false);
Done.setText("Done!");
System.out.println("Done!");
//setting everything invisible and printing Done on the screen
try {
Thread.sleep(5000);
} catch(InterruptedException ex) {
Thread.currentThread().interrupt();
}
System.exit(0);
應根據我發生什麼事:「完成」完成標籤設置爲文本然後println,然後等待5秒,然後程序關閉。但是,發生的事情是;它確實println,然後等待5秒,但它從來沒有將完成標籤設置爲完成! 爲什麼?
更新1 注意,如果我只是刪除睡眠try和catch塊,然後它做的事情,然後顯示處理得當,但不一樣,如果睡眠塊存在
更新2爲什麼它不是先輸出它然後睡覺?爲什麼? [就像在答案中他們說,它會掛,好吧,我明白了,但如果我已經寫了,它應該設置標籤,它應該設置它,然後暫停後設置它爲什麼之前???]
如果它是仍然不清楚:看看我想要做的是,1.使某些物品不可見2.更改標籤的文字3.等待5秒4.自動退出 按此確切順序。
'Done'是什麼嗎?向我們展示您的完整代碼? –
我們可以看到完成對象嗎? – Esqarrouth
你在哪個線程執行此代碼?它是EDT線程嗎? – Taky