三个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();
}
}
单击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();
}
}
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);
}
}
您写的很简捷明了, 您很厉害哟.
我是这样写的了.
btnNext =new JButton( "下一步 ");
btnNext.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
b=new B(a);//加这一条
new C(b);
setVisible(false); }
});
虽然这样也行,不过它老是说 "构造函数 B(demo.B)" ,不管了,反正用您说的这种方法了.