作者conanist (QQ)
看板java
標題Re: [問題] Swing、GUI 即時更新
時間Fri Oct 30 09:35:22 2009
※ 引述《KanoLoa (卡)》之銘言:
: 遇到一個不太能理解的問題,所以來這邊求救 m(_ _)m
: 情境大概是這樣的:
: -------------------------------------------------
: 我寫了一個GUI,用來對機器人下指令和監控參數。
: 當我按下前進鈕的時候,機器人會往前走五秒。
: 然後GUI要在機器人前進的時候,
: 依然能夠取得機器人的某個參數,(例如感測器的參數
: 好讓我能夠在GUI上面更新參數訊息。
: 1.於是我在機器人往前走的程式碼裡面,
: 加上一段更新GUI的參數欄位的程式碼:
: while(不到5秒){
: 走路();
: GUI.SetTextArea(參數); ← 就這行
: 計時();
: }
: 這樣的結果就是得等機器人走完那五秒,
: 停下後他才去更新GUI,完全不理會正常程序的步驟。
: 2.我用一個Thread,每秒去取得機器人的參數,然後更新GUI:
: run()
: {
: while(1)
: {
: X = 取得機器人參數();
: GUI.SetTextArea(X);
: 等一秒();
: }
: }
: 結果依然一樣,只要機器人在做任何動作的時候,
: GUI的介面更新就被放在最後,即使我要求先更新在動作。
: 為什麼有關GUI的顯示功能都會被拋在最後面才一次去做呢?
: 實在是令我很苦惱阿,有版友願意解惑嗎,十二萬分感謝。
你按了前進之後會進入事件處理常式 然後在常市裡面你設定機器人走路五秒鐘
你要再走路函式裡面 抓資料 不市等走路函式之後再抓資料
你把事件驅動的原理看一下 應該可以解決你的問題
我沒做過機器人控制 只能大概判斷你的問題 如不能解決你的問題請版友協助一下
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.41.129.186
推 PsMonkey:同學... 一來這個問題都解決了,二來你... 文不對題阿 10/30 09:49
推 KanoLoa:感謝你的回覆,不過這方法也是不行,上一篇有說到XD 10/30 09:54
→ adrianshum:看不懂 常式 常市 不市等 是什麼.... 10/30 10:24