哪位高手帮我把以下三个JFrame实现切换?

Pol 2007-11-19 09:02:12
三个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();
}
}
...全文
125 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Pol 2007-11-20
  • 打赏
  • 举报
回复
嗯 ,问题已经解决了.
您写的很简捷明了, 您很厉害哟.
我是这样写的了.
btnNext =new JButton( "下一步 ");
btnNext.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
b=new B(a);//加这一条
new C(b);
setVisible(false);

}
});
虽然这样也行,不过它老是说 "构造函数 B(demo.B)" ,不管了,反正用您说的这种方法了.
wqs1106 2007-11-19
  • 打赏
  • 举报
回复
比较匆忙,代码格式不是很好...
不过你要求的功能还是实现了的.
wqs1106 2007-11-19
  • 打赏
  • 举报
回复
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);
}
}
Pol 2007-11-19
  • 打赏
  • 举报
回复
没有那么简单吧,C中要B的实例了,且要带参数的了,
不信您调试一下就知道了.
dracularking 2007-11-19
  • 打赏
  • 举报
回复
和a b一个意思啊 b,c类中相应的按钮响应没写

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧