你在frame2中新建了frame1,当然没有拉。可以这样:
Frame2 f2=new Frame2(frame1);  //将frame1作为参数传到frame2;
然后在frame2中:
frame1 f1=new frame1();f1=frame1;f1.show();OK。
 

解决方案 »

  1.   

    谢谢你
    可是我在Frame1中用
    Frame2 f2=new Frame2(Frame1);
    报错:variable Frame1 not found in class Frame1.
    请问这是为什么?
      

  2.   

    import java.awt.*;
    import java.awt.event.*;public class Frame1 extends Frame
    {
    public void init()
    {
    setLayout(new BorderLayout());
    TextField tf = new TextField(20);
    Button btn = new Button("Frame2");
    btn.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent e){
    btnAction();
    }
    });
    add("North",tf);
    add("South",btn);
    }
    public void btnAction()
    {
    Frame2 f2 = new Frame2(this);
    f2.init();
    f2.setSize(200,200);
    f2.show();
    hide();
    }
    public static void main(String args[])
    {
    Frame1 f = new Frame1();
    f. init();
    f.setSize(300,300);
    f.addWindowListener(new WindowAdapter(){
    public void windowClosing(WindowEvent e){
    System.exit(0);
    }
    });
    f.show();
    }
    }
    class Frame2 extends Frame
    {
    Frame1 f1 = null;
    public Frame2(Frame1 f1)
    {
    this.f1 = f1;
    }
    public void init()
    {
    setLayout(new BorderLayout());
    Button btn = new Button("Frame1");
    btn.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent e){
    f1.show();
    hide();
    }
    });
    add("South",btn);
    }
    }
      

  3.   

    上面这个同学说的很清楚拉。就是先要在frame2的构造函数中学入参数