看板 java 關於我們 聯絡資訊
※ 引述《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)
Makoto0813:感謝各位版友的意見 很有幫助! 12/05 14:21
laechan:while 比較像古早時期的寫法 12/06 12:00