java swing JFrame之间 数据传递

建立了两个JFrame在java swing当中,但是怎样在两个JFrame之间传递数据,比如说JFrame1里面的一个文本框得到的数据传递到JFrame2的一个文本框中并显示出来,怎样才能实现这个功能?

写个简单的例子,供你参考吧。
[code="java"]
package test;

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextField;

public class TestJFrame extends JFrame{
private SecondJFrame second = new SecondJFrame();
public TestJFrame() {
this.setLayout(new BorderLayout());

    final JTextField text = new JTextField("first field");
    this.add(text, BorderLayout.CENTER);

    JButton button = new JButton("改变另一个JFrame的值");
    button.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            String first = text.getText();
            second.changeTextValue(first);
        }
    });
    this.add(button, BorderLayout.SOUTH);
    this.setSize(300, 100);
    this.setLocation(200, 200);
    this.setVisible(true);

    this.addWindowListener(new WindowAdapter() {
        public void windowClosing(WindowEvent e) 
        {                
            System.exit(0);
        }
    });
}
/**
 * @param args
 */
public static void main(String[] args) {
    new TestJFrame();
}

}

class SecondJFrame extends JFrame {
JTextField text = new JTextField("second field");
public SecondJFrame() {
this.setLayout(new BorderLayout());
this.add(text, BorderLayout.CENTER);
this.setSize(200, 100);
this.setVisible(true);
}

public void changeTextValue(String newValue) {
    text.setText(newValue);
}

}

[/code]

参见:
[url]http://www.iteye.com/problems/94081[/url]
3种解决方法
1.同个new 对象的形式对 B对象的某一个属性复制 而这个值,就是当前页面的查询值
[构造函数传参,在new B的时候,把a中的值,传入到b中,b根据这个值初始化b中原件]
2. b提供一个public 的方法,修改 b中原件的属性的值,给A调用,然后调用b的界面刷新(貌似内置的有 this.updateUI(); )的方法
3.静态字段传值的方式了