Re: [問題] 如何在視窗輸入參數後,繼續執行main?
※ 引述《Makoto0813 (多愁善感的中學二年級生)》之銘言:
: 可能我講得不夠清楚
: 我是照著書本上做的,所以該有的lisener或handler都有放,雖然是初學有些不是很懂
: 我寫這個程式的主要用途是將一個資料夾裡的影片檔一張張做處裡
: 要是沒法處理,就在try...catch結構裡面手動輸入參數讓他還是能生出東西
: 後來我查到問題可能在我寫的GUI是JFrame,他不支援同步處理,要是我沒法讓main
: 去等待,他會沒等我輸入完,main還是跑他自己的往下個for loop走
: 繼續跳下一張圖然後不斷產生新的輸入介面視窗這樣...
: 在網路上剛好看到有人也有一樣的問題,有人的回應是說可以將JFrame換成JDialog,
: 它可以讓main去等待,不然就只能實作多執行緒的同步處理了(沒做過...)
基本上main的執行是一個腸子通到底的
GUI的行為是event driven的,有事件發生則callback
硬要把這兩個整在一起本來就不是太好,
建議還是就當做純GUI application去寫比較恰當
如果真的還是堅持要用你的寫法
比較正確的做法是new一個Object當做同步用
public class MyFrame
{
public Object sync = new Object();
//...
}
main這邊要呼叫sync.wait()
而GUI這邊輸入完成後呼叫sync.notify()
用while loop真的有點暴力..
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.135.251.162
※ 編輯: popcorny 來自: 220.135.251.162 (12/05 14:12)
※ 編輯: popcorny 來自: 220.135.251.162 (12/05 14:12)
※ 編輯: popcorny 來自: 220.135.251.162 (12/05 14:13)
推
12/05 14:21, , 1F
12/05 14:21, 1F
→
12/06 12:00, , 2F
12/06 12:00, 2F
討論串 (同標題文章)