package Comm;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2005</p>
* <p>Company: </p>
* @author not attributable
* @version 1.0
*/
public class Frame1 extends JFrame {
JTextArea jTextArea1 = new JTextArea();
JButton jButton1 = new JButton();
JLabel jLabel1 = new JLabel();
JButton jButton2 = new JButton();
Frame2 child;
public Frame1() {
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
Frame1 frame1 = new Frame1();
frame1.setVisible(true);
frame1.show();
}
private void jbInit() throws Exception {
jTextArea1.setText("jTextArea1");
jButton1.setText("Make Frame 2");
jButton1.addActionListener(new Frame1_jButton1_actionAdapter(this));
jLabel1.setText("Frame 1");
jButton2.setText("jButton2");
jButton2.addActionListener(new Frame1_jButton2_actionAdapter(this));
this.getContentPane().add(jTextArea1, BorderLayout.CENTER);
this.getContentPane().add(jButton1, BorderLayout.WEST);
this.getContentPane().add(jLabel1, BorderLayout.NORTH);
this.getContentPane().add(jButton2, BorderLayout.SOUTH);
}
void jButton1_actionPerformed(ActionEvent e) {
child=new Frame2(this);
child.setVisible(true);
child.show();
}
void jButton2_actionPerformed(ActionEvent e) {
this.jTextArea1.setText(child.jTextField1.getText());
}
}
class Frame1_jButton1_actionAdapter implements java.awt.event.ActionListener {
Frame1 adaptee;
Frame1_jButton1_actionAdapter(Frame1 adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jButton1_actionPerformed(e);
}
}
class Frame1_jButton2_actionAdapter implements java.awt.event.ActionListener {
Frame1 adaptee;
Frame1_jButton2_actionAdapter(Frame1 adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jButton2_actionPerformed(e);
}
}
------------------------------------------------------------------------------------------------------------
package Comm;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2005</p>
* <p>Company: </p>
* @author not attributable
* @version 1.0
*/
public class Frame2 extends JFrame {
JLabel jLabel1 = new JLabel();
JTextField jTextField1 = new JTextField();
JButton jButton1 = new JButton();
Frame1 parent;
public Frame2(Frame1 Parent) {
parent =Parent;
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
}
private void jbInit() throws Exception {
jLabel1.setText("Frame 2");
jTextField1.setText("jTextField1");
jButton1.setText("Get Frame1 Text");
jButton1.addActionListener(new Frame2_jButton1_actionAdapter(this));
this.getContentPane().add(jLabel1, BorderLayout.NORTH);
this.getContentPane().add(jTextField1, BorderLayout.CENTER);
this.getContentPane().add(jButton1, BorderLayout.SOUTH);
}
void jButton1_actionPerformed(ActionEvent e) {
this.jTextField1.setText(parent.jTextArea1.getText() );
}
}
class Frame2_jButton1_actionAdapter implements java.awt.event.ActionListener {
Frame2 adaptee;
Frame2_jButton1_actionAdapter(Frame2 adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jButton1_actionPerformed(e);
}
}
------------------------------------------------------------------------------------------------------------
运行以上的frame1 。 frame1 可以读取frame2的text, frame2也可以读取frame1的text