[問題] 如何在視窗輸入參數後,繼續執行main?

看板java作者 (多愁善感的中學二年級生)時間13年前 (2012/12/05 09:18), 編輯推噓2(203)
留言5則, 3人參與, 最新討論串1/7 (看更多)
我寫了一個視窗介面來輸入我這個程式要的參數 我知道用JOption也可以...只是想要一次全部輸入秀出來,所以還是用JFrame ,我設定一個布林變數done來判斷是否有完成輸入,在視窗開啟之後,寫一個while 去等待,當done變成true時才能離開no op的while loop繼續往下做, 結果發現每次輸入完之後,while都不會停...但若是把while拿掉,還沒等到參數輸入完成 它就往下做了。 我在想會不會是java把while那段執行放到另一個cpu上做了,所以當裡面判斷式的布林 值改變了,但是他沒有即刻更新....請問這個問題該怎解呢? 以下是有問題的程式碼: //座標初始設成無效的數值,用來辨認參數是否有在GUI介面被寫入 Coordinate tip=new Coordinate(-50,-50); Coordinate root=new Coordinate(-50,-50); ManualInputPanel manual=new ManualInputPanel(fileName,tip,root); manual.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE); manual.setSize(800,200); manual.setVisible(true); //等待參數輸入完成(這個部分試過用isvisible()或是isshowing()結果都一樣 while(!manual.isDone()) { ; } manual.setVisible(false); double dis=Coordinate.distance(tip, root); //做尺寸正規化 Scaling scale=new Scaling(new ScaleNormalize(dis).getScale(),spareImg); gray=scale.getImg(); writebmp.SaveGray(output+"8-大小正規化-"+FileName,gray); -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 175.181.120.39 ※ 編輯: Makoto0813 來自: 175.181.120.39 (12/05 09:19)

12/05 09:25, , 1F
通常視窗類的程式會有自己的執行緒。
12/05 09:25, 1F

12/05 09:31, , 2F
還有,卡住執行緒盡量不要用迴圈,用block之類的東西比較好
12/05 09:31, 2F
意思是說要做同步處裡thread的意思嗎? 是要繼承runnable去做的意思嗎?

12/05 09:45, , 3F
你要實作listener才是~好奇問一句~你是一個JAVA寫到底嗎
12/05 09:45, 3F

12/05 09:52, , 4F
1個java寫到底? 不太確定你的意思,我沒有內嵌其他語言
12/05 09:52, 4F

12/05 11:18, , 5F
請問關於listener可以說詳細一點嗎,不知可用哪一種
12/05 11:18, 5F
※ 編輯: Makoto0813 來自: 175.181.120.39 (12/05 11:21)
文章代碼(AID): #1Glg3kiu (java)
討論串 (同標題文章)
文章代碼(AID): #1Glg3kiu (java)