三个class 这以写发好,我想单击A窗口中的"登录"出现B窗口,这里A窗口隐藏,
单击B中的"注销",B窗口关闭显示A窗口;这两个窗口的切换我已经会做了。
  但是接下来的我就不会了:单击B窗口中的”下一步B不显示,而显示C,单击C中的”上一步“返回B
窗口,C关闭;  //a.class
package demo;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;public class A extends JFrame{
static A a;
JPanel panel;
JButton btnLogin;
    public A() {
     panel=new JPanel();
     btnLogin =new JButton("登录");
     btnLogin.addActionListener(new ActionListener(){
         public void actionPerformed(ActionEvent e){
         setVisible(false);
new B(a);
         }
        });
     panel.add(btnLogin);
     getContentPane().add(panel);
     this.setSize(400,300);
     this.setVisible(true);
     this.show();
    }
    
    public static void main(String[] args){
     a=new A();
    }
}   //b.class
package demo;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;public class B extends JFrame{
A a;
JPanel panel;
JButton btnLogOut,btnNext;
    public B(A obj) {
     a=obj;
     panel=new JPanel();
     btnLogOut =new JButton("注销");
     btnLogOut.addActionListener(new ActionListener(){
         public void actionPerformed(ActionEvent e){
         a.setVisible(true);
a.show();
dispose();
         }
        });
        btnNext =new JButton("下一步");
     panel.add(btnLogOut);
     panel.add(btnNext);
     getContentPane().add(panel);
     this.setSize(400,300);
     this.setVisible(true);
     this.show();
    }
}
     //c.calss
package demo;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;public class C extends JFrame{
JPanel panel;
JButton btnOk,btnFor;
    public C() {
     panel=new JPanel();
     btnFor =new JButton("上一步");
     btnOk =new JButton("完成");
     panel.add(btnFor);
     panel.add(btnOk);
     getContentPane().add(panel);
     this.setSize(400,300);
     this.setVisible(true);
     this.show();
    }
}

解决方案 »

  1.   

    和a b一个意思啊 b,c类中相应的按钮响应没写 
      

  2.   

    public   class   A   extends   JFrame{ 
             A   a=this; 
            JPanel   panel; 
    JButton   btnLogin; 
            public   A()   { 
            panel=new   JPanel(); 
            btnLogin   =new   JButton( "登录 "); 
            btnLogin.addActionListener(new   ActionListener(){ 
                    public   void   actionPerformed(ActionEvent   e){ 
                    setVisible(false); 
    new   B(a); 
                    } 
                    });         panel.add(btnLogin);         getContentPane().add(panel);
    this.setTitle("a");
            this.setSize(400,300); 
            this.setVisible(true); 
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            } 
            public   static   void   main(String[]   args){ 
           new   A(); 
            } 

    ///////////////////////////////////////////////////////////////////////////////
    import   java.awt.*; 
    import   javax.swing.*; 
    import   java.awt.event.*; public   class   B   extends   JFrame{ 
     B b=this;
    A   a; 
    JPanel   panel; 
    JButton   btnLogOut,btnNext; 
            public   B(A   obj)   { 
            a=obj;

            panel=new   JPanel(); 
            btnLogOut   =new   JButton( "注销 "); 
            btnLogOut.addActionListener(new   ActionListener(){ 
                    public   void   actionPerformed(ActionEvent   e){ 
                    a.setVisible(true); 
                    dispose(); 
                    } 
                    }); 
            btnNext   =new   JButton( "下一步 "); 
    btnNext.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent e)
    {
    new C(b);
    setVisible(false); }
    });        panel.add(btnLogOut); 
            panel.add(btnNext); 
            getContentPane().add(panel); 
            this.setSize(400,300); 
            this.setVisible(true); 
    this.setTitle("b");
            } 

    /////////////////////////////////////////////////////////////
    import   java.awt.*; 
    import   javax.swing.*; 
    import   java.awt.event.*; public   class   C   extends   JFrame{ 
    B b;
    JPanel   panel; 
    JButton   btnOk,btnFor; 
            public   C(B bJ)   { 
    this.b=bJ;
            panel=new   JPanel(); 
            btnFor   =new   JButton( "上一步 "); 
     btnFor.addActionListener(new   ActionListener(){ 
                    public   void   actionPerformed(ActionEvent   e){ 
                    b.setVisible(true); 
                    dispose(); 
                    } 
                    }); 
            btnOk   =new   JButton( "完成 "); 
        btnOk.addActionListener(new   ActionListener(){ 
                    public   void   actionPerformed(ActionEvent   e){ 
                    dispose(); 
                    } 
                    }); 
            panel.add(btnFor); 
            panel.add(btnOk); 
            getContentPane().add(panel); 
            this.setSize(400,300); 
            this.setVisible(true); 
    this.setTitle("c");
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            } 
    }
      

  3.   

       嗯 ,问题已经解决了.
            您写的很简捷明了, 您很厉害哟.
      我是这样写的了. 
      btnNext  =new  JButton(   "下一步   ");   
    btnNext.addActionListener(new   ActionListener(){ 
    public   void   actionPerformed(ActionEvent   e) 

     b=new B(a);//加这一条
    new   C(b); 
    setVisible(false); } 
    }); 
      虽然这样也行,不过它老是说  "构造函数 B(demo.B)" ,不管了,反正用您说的这种方法了.