看板java
标 题Re: java JDialog 的一个问题
发信站中正筑梦园 (Wed Jan 4 15:34:05 2006)
转信站ptt!ctu-reader!Spring!ctu-peer!news.nctu!netnews.csie.nctu!news.cna.cc
※ 引述《[email protected] (痞子军团团长)》之铭言:
> ※ 引述《[email protected] (小光先生)》之铭言:
> : 以下code只保留精神部份
> : program extends JFrame{
> : adialog testDialog;
> : testDialog.messageReceived(message); <--------1
> : }
> : adialog extends JDialog{
> : JTextArea
> : public messageReceived(message){
> : JTextArea.append(message);
> : }
> : JButton.addActionListener(
> : messageReceived(message); <-------------2
> : );
> : }
> : 在program里呼叫messageReceived(),
> : JTextArea.append(message);好像没被执行一样的,JTextArea没动静,
> : 但在 2的部份,在adialog里呼叫就能正确执行,
> : 完全不知道是怎麽一回事了....
> : 请问有先进有遇过类似的问题吗?
> 你的程式码实在是太 "精神" 了
> 实在看不出什麽花样出来...
> 虽然说 po 在网路上的程式法要精练过,比较合乎网路礼节
> 但是,这实在有一点... 看不懂阿阿阿阿....
你应该有将你的JDialog与JFrame设为互相关联的modal dialog吧。
当你在呼叫modal dialog的show();时,main-thread会由呼叫的地方跑到
dialog那边,直到该dialog被close掉才会回到本来呼叫show();的地方..
所以你的testDialog.messageReceived(message);不是不会执行到,而是
要等到你的dialog关掉时才又执行,但因为关掉了你也看不到效果.. XD
--
● ˙ ˙ ◢▇◣ ◢▇◣ ▇ ▇ █▇◣ █▇◣ █▇◣ ◢▇◣ █▇▉ /
˙ ╲ █ █ █ █ █ ▉ █ ▉ █▆ █▆▉ ▉▉▉ ★
◢ ★˙ ◥█◤ ◥█◤ ◥█◤ ██◤ █◥▆ █▆◤ █ ▉ ▉▉▉˙ ◣
CDBBS 中正筑梦园BBS站 欢迎莅临参观 cd.twbbs.org (140.123.20.230)
http://cd.twbbs.org◥ * Author: lazyf ★ From: 140.123.105.25 ◤