if(e.getSource()==user_log) banks.next(p1);
if(e.getSource()==sys_manage) banks.next(p2);
改成if(e.getSource().equals(user_log)) banks.next(this);
if(e.getSource().equals(sys_manage)) banks.next(this);
if(e.getSource()==sys_manage) banks.next(p2);
改成if(e.getSource().equals(user_log)) banks.next(this);
if(e.getSource().equals(sys_manage)) banks.next(this);
如果想任意切换,应该如此:
1.
setLayout(banks);
banks.addLayoutComponent(p1,"p1"); //这里"p1","p2","p4"名字可以任意起,但不要重名
banks.addLayoutComponent(p2,"p2");
banks.addLayoutComponent(p4,"p4");
add("管理",p1);
add("登陆",p2);
add("系统",p4);2.
if(e.getSource().equals(user_log)) banks.show(this,"p2");
if(e.getSource().equals(sys_manage))banks.show(this,"p4");注意"p2"和"p4"要与上面的定义一致
user_log.addActionListener(this);
sys_manage.addActionListener(this);
creat_user.addActionListener(this);
......
class p1Panel extends Panel{
Label log ;
//.....定义p1Panel里面的组件
public p1Panel(){
log=new Label("欢迎进入银行管理系统");
//实例化组件
setLayout(new GridLayout(2,2));
p1.add(log);
p1.add(new Label());
p1.add(user_log);
p1.add(sys_manage);
} //这里做p1Panel的初始化工作 public void paint(Graphics g){
//在p1Panel中画图
}
}在Applet中
Panel p1=new Panel();
就应该改为:
p1Panel p1=new p1Panel();其他几个panel也可以如法泡制,当然这个代码是个示例,具体的还要自己修改。
总之你要各个panel都独立操作的话,最好将这几个panel都独立为一个类,这样就好处理了。