- 締切済み
Frameからのデータの受け取り方法
Java初心者です。 JavaプログラムAからMyFrame frm = MyFramehome();frm.show();で新しい画面を起動しています。プログラムAからfrmへたいしてのいろいろなアクセスはメソッドを作成しておけば可能だと思いますが、frm側からプログラムAへのアクセス(データの受け渡しやメソッドの実行)はできないのでしょうか?
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- ssr-y6
- ベストアンサー率71% (5/7)
フレームを作るときに、自分自身の参照を渡してそれをフレーム側で保管し、 使いたいときにその参照を使って呼び出してやればよいと思います。 import java.awt.*; import java.awt.event.*; class MyFrame extends Frame { private A a; public MyFrame(A parent) { super("MyFrme"); a = parent; setSize(320, 240); a.CloseMessage = new String("My Frame Closing"); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent we) { a.Close(); }; }); }; } public class A extends Object { private MyFrame frm; private static A a; public String CloseMessage; public static void main(String args[]) { a = new A(); a.CreateMyFrame(); }; private void CreateMyFrame() { frm = new MyFrame(this); frm.setVisible(true); }; public void Close() { System.out.println(CloseMessage); System.exit(0); }; }
- takaP-
- ベストアンサー率79% (83/105)
プログラムAの参照を渡せば可能です。 public class A { private String message="A"; public String getMessage() { return message; } public void createMyFrameHome() { MyFrame frm=MyFrameHome(this); frm.show(); } public static void main(String[] args) { new A().createMyFrameHome(); } } class MyFrameHome extends Frame { public MyFrameHome(A a) { String message=a.getMessage(); System.out.println(message); } }