2010-03-19 61 views
0

我想有一個簡單的窗體(單選按鈕等)窗口。用戶可以選擇並按下「提交」按鈕。除此之外,我想設置一些時間限制。更詳細地說,用戶應該看到他/她還有多少秒鐘(所以,應該有一個計時器)。如果時間限制超出,程序關閉窗口並提交一個「默認」選擇。我應該使用兩個可以相互殺死的線程嗎?

據我瞭解,我需要爲此生成2個線程。一個會監視窗口中的用戶活動(選擇哪個單選按鈕等)。

另一個線程應該創建一個計時器來檢查每秒的剩餘時間,並以某種方式將該信息放入窗口中。

此外,這兩個線程應該能夠互相殺死。例如,如果按下「提交」按鈕,則第一個線程會殺死定時器。或者如果超過時間,第二個線程(定時器)會終止第一個進程。

這是一個很好的建築嗎?我需要你的意見,因爲我第一次做這樣的事情。

回答

3

雖然有些尷尬,但有可能兩個線程互相殘殺。

但是,我不認爲你需要兩個線程。

您可以使用擺動計時器(請參閱此tutorial)來運行時鐘。當你點擊「提交」時,你可以通過調用stop()方法來停止定時器。 Swing定時器在GUI線程上運行,所以你不會得到併發頭痛。

+0

+1 * JOKE *:和現實生活中一樣,當同一物種的兩件東西試圖互相殘殺時,它總是會變得混亂......讓上帝(或者在這個例子中是一個計時器)做這樣的事情會更好事情。 – Crisfole 2011-02-02 19:45:58

相關問題