[問題] sleep或wait過程中把code做完?
這是我ui介面的import
import javax.swing.*;
import java.awt.*;
只列出一部份的code
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Date;
switch(r)
{
case 0:
demoui.btn0.setBackground(Color.blue);
try {wait(1000);
} catch (InterruptedException er) {er.printStackTrace();}
demoui.btn0.setBackground(null);
try {wait(1000);
}catch(InterruptedException e3) {e3.printStackTrace();}
demoui.btn0.setBackground(Color.GREEN);
demoui.btn0.setEnabled(true);break;
case 1:
...
..
.
}
這段的用意是在按下按鈕之後把某個btn變色後 停留一秒的時間再回無色
再停頓一段時間(1000是臨時設的)後變綠色
這個做法再變成藍色之後eclipse就會顯示出exception
還有一堆unknown source的訊息
會這樣做是因為查到的用法寫說wait如果只給int的話可以只做延遲
如果把wait換成Thread.sleep的話
顏色就會直接跳到綠色
我原本的做法是
Thread.sleep()
switch(r)
{變色} //藍
Thread.sleep()
switch(r)
{還原}
Thread.sleep()
switch(r2)
{變色} //綠
但是這種做法變藍色跟還原的部分似乎在sleep的過程中就執行完了
只看到最後的綠色
我以為是thread所以會同時去sleep
於是sleep兩個會一起結束 變藍色的部分太快就根本看不到
但是換成wait也是出現exception
請問我哪個部分做錯了呢?
或是我哪個地方沒有搞懂用法?
希望這不會是個太蠢的問題= ="
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.255.109.98
→
01/18 00:39, , 1F
01/18 00:39, 1F
推
01/18 00:41, , 2F
01/18 00:41, 2F
→
01/18 00:42, , 3F
01/18 00:42, 3F
→
01/18 00:43, , 4F
01/18 00:43, 4F
抱歉 我接觸java的時間很短 不清楚應該提供怎樣的資訊 (其實C也沒有很好就是了)
這也是我第一次接觸gui介面
是這樣的
會扯到switch是因為我想說如果是因為兩個thread在同樣的層次上才會變成一起執行的話
用switch包起來可能就不會有這種問題了
不過好像沒用Q Q
※ 編輯: efzbadmoon 來自: 111.255.109.98 (01/18 00:51)
※ 編輯: efzbadmoon 來自: 111.255.109.98 (01/18 00:51)
推
01/18 11:12, , 5F
01/18 11:12, 5F
推
01/18 11:14, , 6F
01/18 11:14, 6F
推
01/18 11:17, , 7F
01/18 11:17, 7F
推
01/18 13:00, , 8F
01/18 13:00, 8F
→
01/18 17:28, , 9F
01/18 17:28, 9F
→
01/18 17:29, , 10F
01/18 17:29, 10F
討論串 (同標題文章)
完整討論串 (本文為第 1 之 2 篇):