通过构造方法就可以把那个引用传过去了。。 

如果你是在一个窗口干什么后打开另一个窗口的。。就是说你在一个窗口中打开另一个窗口的。。 

TextFrame 类 这里面有个文本框和一个按钮。。点击按钮就打开另一个窗口。。 

import java.awt.event.ActionEvent; 

import java.awt.event.ActionListener; 


import javax.swing.JButton; 

import javax.swing.JFrame; 

import javax.swing.JLabel; 

import javax.swing.JPanel; 

import javax.swing.JTextField; 


public class TextFrame extends JFrame { 


 public JTextField jt; 

 /** 

 * @param args 

 */ 

 public TextFrame() { 

 JLabel jl = new JLabel("文本框:"); 

 this.jt = new JTextField(15); 

 JButton jb = new JButton("点击"); 

 jb.addActionListener(new ActionListener() { 

 public void actionPerformed(ActionEvent arg0) { 

 new ButtonFrame(TextFrame.this); 

 } 

 }); 

 JPanel jp = new JPanel(); 

 jp.add(jl); 

 jp.add(jt); 

 jp.add(jb); 

 this.add(jp); 

 this.setBounds(100, 100, 100, 100); 

 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

 this.setVisible(true); 

 } 

 public static void main(String[] args) { 

 new TextFrame(); 

 } 


} 


ButtonFrame 类。。这里面有个按钮。点击就可以设置这边这个文本框的内容了。。 

import java.awt.event.ActionEvent; 

import java.awt.event.ActionListener; 


import javax.swing.JButton; 

import javax.swing.JFrame; 

import javax.swing.JOptionPane; 

import javax.swing.JPanel; 


public class ButtonFrame extends JFrame { 


 private TextFrame jf; 

 public ButtonFrame(TextFrame frame) { 

 this.jf = frame; 

 JButton jb = new JButton("点击设置"); 

 jb.addActionListener(new ActionListener() { 

 public void actionPerformed(ActionEvent arg0) { 

 String str = JOptionPane.showInputDialog("请输入", null); 

 ButtonFrame.this.jf.jt.setText(str); 

 } 

 }); 

 JPanel jp = new JPanel(); 

 jp.add(jb); 

 this.add(jp); 

 this.setBounds(250, 250, 100, 100); 

 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

 this.setVisible(true); 

 } 




} 


如果两个类都是单独运行的。。没有任何关系的话(即不是在一个窗口中点击上面东西或是干什么就打开另一个窗口)。。都是独立运行的。。 

那就需要用到socket了哦。。 


下面两个类你都单独运行就是了哈。。 

服务器端:SocketManager类。这里面有个文本框。。 


import java.io.DataInputStream; 

import java.io.DataOutputStream; 

import java.io.IOException; 

import java.net.ServerSocket; 

import java.net.Socket; 


import javax.swing.JFrame; 

import javax.swing.JLabel; 

import javax.swing.JPanel; 

import javax.swing.JTextField; 


public class SocketManager extends JFrame { 

 /** 

 * @param args 

 * @throws IOException 

 */ 

 private JTextField jt; 


 public static void main(String[] args) { 

 SocketManager manager = new SocketManager(); 

 manager.doListen(); 

 } 


 public SocketManager() { 

 JLabel jl = new JLabel("文本框:"); 

 this.jt = new JTextField(15); 

 JPanel jp = new JPanel(); 

 jp.add(jl); 

 jp.add(jt); 

 this.add(jp); 

 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

 this.setVisible(true); 

 } 


 public void doListen() { 

 ServerSocket server; 

 try { 

 server = new ServerSocket(9991); 

 while (true) { 

 Socket client = server.accept(); 

 new Thread(new SSocket(client)).start(); 

 } 

 } catch (IOException e) { 

 e.printStackTrace(); 

 } 


 } 


 // 服务器进程 

 class SSocket implements Runnable { 


 Socket client; 


 public SSocket(Socket client) { 

 this.client = client; 

 } 


 public void run() { 

 DataInputStream input; 

 while (true) { 

 try { 

 input = new DataInputStream(client.getInputStream()); 

 try { 

 String listMsg = input.readUTF(); 

 SocketManager.this.jt.setText(listMsg); 

 } catch(Exception e) { 

 break; 

 } 

 } catch (IOException e) { 

 e.printStackTrace(); 

 } 

 } 

 } 

 } 


} 


客户端:Client类 有个按钮。。点击弹出输入框输入内容。。服务器的文本框就显示你输入的内容 


import java.awt.event.ActionEvent; 

import java.awt.event.ActionListener; 

import java.io.DataOutputStream; 

import java.io.IOException; 

import java.io.OutputStream; 

import java.net.Socket; 


import javax.swing.JButton; 

import javax.swing.JFrame; 

import javax.swing.JOptionPane; 

import javax.swing.JPanel; 


public class Client extends JFrame { 


 private static Socket socket; 

 OutputStream netOut; 

 DataOutputStream doc; 

 public Client() { 

 try { 

 socket = new Socket("127.0.0.1", 9991); 

 this.netOut = socket.getOutputStream(); 

 this.doc = new DataOutputStream(netOut); 

 } catch(Exception e) { 

 e.printStackTrace(); 

 } 

 JButton jb = new JButton("点击设置"); 

 jb.addActionListener(new ActionListener() { 

 public void actionPerformed(ActionEvent arg0) { 

 String str = JOptionPane.showInputDialog("请输入", null); 

 try { 

 doc.writeUTF(str); 

 } catch (IOException e) { 

 // TODO Auto-generated catch block 

 e.printStackTrace(); 

 } 

 } 

 }); 

 JPanel jp = new JPanel(); 

 jp.add(jb); 

 this.add(jp); 

 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

 this.setVisible(true); 

 } 

 public static void main(String[] args) { 

 new Client(); 

 } 

}