作者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
1F:推 PsMonkey:同学... 一来这个问题都解决了,二来你... 文不对题阿 10/30 09:49
2F:推 KanoLoa:感谢你的回覆,不过这方法也是不行,上一篇有说到XD 10/30 09:54
3F:→ adrianshum:看不懂 常式 常市 不市等 是什麽.... 10/30 10:24