Re: [問題] 兩個JFrame之間要怎麼傳值

看板java作者 (!H45)時間17年前 (2008/06/26 22:05), 編輯推噓1(102)
留言3則, 2人參與, 最新討論串4/4 (看更多)
※ 引述《smallsour (小酸)》之銘言: : ※ 引述《jawwoeima (RYAN)》之銘言: : : import B; : : Class A extends JFrame : : { : : B b; : : public A() : : { : : } : : public void setB(B bb) : : { : : b = bb; : : } : : } : : ============================= : : import A; : : Class B extends JFrame : : { : : A a; : : public B() : : { : : } : : public void setA(A aa) : : { : : a = aa; : : } : : } : : ================================ : : public static void main(String args[]) : : { : : A a = nwe A(); : : B b = new B(); : : a.setB(b); : : b.setA(a); : : } : : 沒試過,不過這樣應該可以吧 : import A; 跟 import B; 不能直接這樣用耶 compile 過不了 : 還有JDialog要怎樣用阿? : 有人可以簡易示範給我看嗎 : 我只要把在Frame A 輸入數字 傳到 Frame B : 我看了JDialog的API 不是很懂 如果你全部放在根目錄 (/) 沒有 package 的話,下面是個範例: ==A.java== import javax.swing.JFrame; import javax.swing.JOptionPane; public class A extends JFrame { public B b; public String message; public void showDialog() { message = JOptionPane.showInputDialog(null); } } ==B.java== import javax.swing.JFrame; public class B extends JFrame { public A a; } ==Drive.java== public class Drive { public static void main(String[] args) throws Exception { A a = new A(); B b = new B(); a.b = b; b.a = a; a.showDialog(); System.out.println(a.message); System.out.println(b.a.message); } } ==執行結果== ┌────────────────────┐ │ 輸入 │ ├────────────────────┤ │ ? _I___________________________ │ │ │ │ 確定 取消 │ └────────────────────┘ 你輸入什麼,他就輸出什麼,舉例而言:123 那麼在 command line 會印出:123 ==註== 你不能 import A 和 B,因為 A 和 B 沒有 package。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.247.13

06/26 22:07, , 1F
囧,我搞錯某個很重要的東西
06/26 22:07, 1F
把某個很重要的東西改上去。 ※ 編輯: H45 來自: 140.116.247.13 (06/26 22:13)

06/26 22:15, , 2F
實際應用的時候沒印象需要這樣搞,依賴關係通常是樹,而非迴路
06/26 22:15, 2F

06/26 23:32, , 3F
我之前作法是當dialog dispose 才執行回傳值的動作
06/26 23:32, 3F
文章代碼(AID): #18Ow8hLU (java)
文章代碼(AID): #18Ow8hLU (java)