看板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 ◤