首先再构造函数里添加一些控件代码
//Left面板折叠式菜单设置,三面板网格式布局
pNorth=new JPanel();
pNorth.setLayout(new GridLayout(8,1));
pSouth=new JPanel();
subMenuContainer=new JPanel();
subMenuContainer.setLayout(new GridLayout(4,1));
item1=new JButton("首页"); //设置按钮
item2=new JButton("病人信息管理");
item3=new JButton("就医档案管理");
item4=new JButton("医生信息管理");
item5=new JButton("科室信息管理");
item6=new JButton("价格管理");
item7=new JButton("收费管理");
item8=new JButton("系统设置");
item1.setPreferredSize(new Dimension(150, 47)); //优先设置按钮大小
item2.setPreferredSize(new Dimension(150, 47));
item3.setPreferredSize(new Dimension(150, 47));
item4.setPreferredSize(new Dimension(150, 47));
item5.setPreferredSize(new Dimension(150, 47));
item6.setPreferredSize(new Dimension(150, 47));
item7.setPreferredSize(new Dimension(150, 47));
item7.setPreferredSize(new Dimension(150, 47));
item8.setPreferredSize(new Dimension(150, 47));
item1.setContentAreaFilled(false);item2.setContentAreaFilled(false); //设置为透明
item3.setContentAreaFilled(false);item4.setContentAreaFilled(false);
item5.setContentAreaFilled(false);item6.setContentAreaFilled(false);
item7.setContentAreaFilled(false);item8.setContentAreaFilled(false);
pNorth.add(item1); pNorth.add(item2); pNorth.add(item3); //添加按钮
pNorth.add(item4); pNorth.add(item5); pNorth.add(item6);
pNorth.add(item7);pNorth.add(item8);
btn=new JButton[2]; //设置子功能按钮
btn[0]=new JButton("信息录入");
btn[1]=new JButton("其他操作");
for(int i=0;i<btn.length;i++){
btn[i].setBackground(Color.WHITE); //设置按钮颜色
btn[i].setPreferredSize(new Dimension(150,30));//设置大小
btn[i].addMouseListener(this);
}
ctn=new JButton[3];
ctn[0]=new JButton("档案录入");
ctn[1]=new JButton("处方单");
ctn[2]=new JButton("其他操作");
for(int i=0;i<ctn.length;i++){
ctn[i].setBackground(Color.WHITE);
ctn[i].setPreferredSize(new Dimension(150,30));
ctn[i].addMouseListener(this);
}
dtn=new JButton[2];
dtn[0]=new JButton("信息录入");
dtn[1]=new JButton("其他操作");
for(int i=0;i<dtn.length;i++){
dtn[i].setBackground(Color.WHITE);
dtn[i].setPreferredSize(new Dimension(150,30));
dtn[i].addMouseListener(this);
}
etn=new JButton[1];
etn[0]=new JButton("综合操作");
for(int i=0;i<etn.length;i++){
etn[i].setBackground(Color.WHITE);
etn[i].setPreferredSize(new Dimension(150,30));
etn[i].addMouseListener(this);
}
ftn=new JButton[1];
ftn[0]=new JButton("综合操作");
for(int i=0;i<ftn.length;i++){
ftn[i].setBackground(Color.WHITE);
ftn[i].setPreferredSize(new Dimension(150,30));
ftn[i].addMouseListener(this);
}
gtn=new JButton[2];
gtn[0]=new JButton("结账页面");
gtn[1]=new JButton("综合操作");
for(int i=0;i<gtn.length;i++){
gtn[i].setBackground(Color.WHITE);
gtn[i].setPreferredSize(new Dimension(150,30));
gtn[i].addMouseListener(this);
}
htn=new JButton[1];
htn[0]=new JButton("修改密码");
for(int i=0;i<htn.length;i++){
htn[i].setBackground(Color.WHITE);
htn[i].setPreferredSize(new Dimension(150,30));
htn[i].addMouseListener(this);
}
left.add(pNorth,"North"); //按钮添加到left面板中
left.add(subMenuContainer,"Center");
left.add(pSouth,"South");
//监听器添加
item1.addMouseListener(this);
item2.addMouseListener(this);
item3.addMouseListener(this);
item4.addMouseListener(this);
item5.addMouseListener(this);
item6.addMouseListener(this);
item7.addMouseListener(this);
item8.addMouseListener(this);
然后添加功能,为按钮添加事件,如下
public void mouseClicked(MouseEvent e) {
if(e.getSource()==item1){
this.add(right);
HomePage s=new HomePage(); //调用主页的类。
right.add(s.homePage, "homePage");
layout.next(right);
}
//设置折叠按钮功能,先把南面板清空,让后在给各面板设置布局方式,添加按钮也添加子功能按钮,清楚别的子功能按钮
if(e.getSource()==item2){
pSouth.removeAll();
pNorth.setLayout(new GridLayout(2,1));
pSouth.setLayout(new GridLayout(6,1));
pNorth.add(item1);
pNorth.add(item2);
pSouth.add(item3);
pSouth.add(item4);
pSouth.add(item5);
pSouth.add(item6);
pSouth.add(item7);
pSouth.add(item8);
for(int i=0;i<btn.length;i++)
subMenuContainer.add(btn[i]);
for(int i=0;i<ctn.length;i++)
subMenuContainer.remove(ctn[i]);
for(int i=0;i<dtn.length;i++)
subMenuContainer.remove(dtn[i]);
for(int i=0;i<etn.length;i++)
subMenuContainer.remove(etn[i]);
for(int i=0;i<ftn.length;i++)
subMenuContainer.remove(ftn[i]);
for(int i=0;i<gtn.length;i++)
subMenuContainer.remove(gtn[i]);
for(int i=0;i<htn.length;i++)
subMenuContainer.remove(htn[i]);
validate();
getContentPane().repaint();
}
if(e.getSource()==item3){
pSouth.removeAll();
pNorth.setLayout(new GridLayout(3,1));
pSouth.setLayout(new GridLayout(5,1));
pNorth.add(item1);
pNorth.add(item2);
pNorth.add(item3);
pSouth.add(item4);
pSouth.add(item5);
pSouth.add(item6);
pSouth.add(item7);
pSouth.add(item8);
for(int i=0;i<btn.length;i++)
subMenuContainer.remove(btn[i]);
for(int i=0;i<ctn.length;i++)
subMenuContainer.add(ctn[i]);
for(int i=0;i<dtn.length;i++)
subMenuContainer.remove(dtn[i]);
for(int i=0;i<etn.length;i++)
subMenuContainer.remove(etn[i]);
for(int i=0;i<ftn.length;i++)
subMenuContainer.remove(ftn[i]);
for(int i=0;i<gtn.length;i++)
subMenuContainer.remove(gtn[i]);
for(int i=0;i<htn.length;i++)
subMenuContainer.remove(htn[i]);
validate();
getContentPane().repaint();
}
if(e.getSource()==item4){
pSouth.removeAll();
pNorth.setLayout(new GridLayout(4,1));
pSouth.setLayout(new GridLayout(4,1));
pNorth.add(item1);
pNorth.add(item2);
pNorth.add(item3);
pNorth.add(item4);
pSouth.add(item5);
pSouth.add(item6);
pSouth.add(item7);
pSouth.add(item8);
for(int i=0;i<btn.length;i++)
subMenuContainer.remove(btn[i]);
for(int i=0;i<ctn.length;i++)
subMenuContainer.remove(ctn[i]);
for(int i=0;i<dtn.length;i++)
subMenuContainer.add(dtn[i]);
for(int i=0;i<etn.length;i++)
subMenuContainer.remove(etn[i]);
for(int i=0;i<ftn.length;i++)
subMenuContainer.remove(ftn[i]);
for(int i=0;i<gtn.length;i++)
subMenuContainer.remove(gtn[i]);
for(int i=0;i<htn.length;i++)
subMenuContainer.remove(htn[i]);
validate();
getContentPane().repaint();
}
if(e.getSource()==item5){
pSouth.removeAll();
pNorth.setLayout(new GridLayout(5,1));
pSouth.setLayout(new GridLayout(3,1));
pNorth.add(item1);
pNorth.add(item2);
pNorth.add(item3);
pNorth.add(item4);
pNorth.add(item5);
pSouth.add(item6);
pSouth.add(item7);
pSouth.add(item8);
for(int i=0;i<btn.length;i++)
subMenuContainer.remove(btn[i]);
for(int i=0;i<ctn.length;i++)
subMenuContainer.remove(ctn[i]);
for(int i=0;i<dtn.length;i++)
subMenuContainer.remove(dtn[i]);
for(int i=0;i<etn.length;i++)
subMenuContainer.add(etn[i]);
for(int i=0;i<ftn.length;i++)
subMenuContainer.remove(ftn[i]);
for(int i=0;i<gtn.length;i++)
subMenuContainer.remove(gtn[i]);
for(int i=0;i<htn.length;i++)
subMenuContainer.remove(htn[i]);
validate();
getContentPane().repaint();
}
if(e.getSource()==item6){
pSouth.removeAll();
pNorth.setLayout(new GridLayout(6,1));
pSouth.setLayout(new GridLayout(2,1));
pNorth.add(item1);
pNorth.add(item2);
pNorth.add(item3);
pNorth.add(item4);
pNorth.add(item5);
pNorth.add(item6);
pSouth.add(item7);
pSouth.add(item8);
for(int i=0;i<btn.length;i++)
subMenuContainer.remove(btn[i]);
for(int i=0;i<ctn.length;i++)
subMenuContainer.remove(ctn[i]);
for(int i=0;i<dtn.length;i++)
subMenuContainer.remove(dtn[i]);
for(int i=0;i<etn.length;i++)
subMenuContainer.remove(etn[i]);
for(int i=0;i<ftn.length;i++)
subMenuContainer.add(ftn[i]);
for(int i=0;i<gtn.length;i++)
subMenuContainer.remove(gtn[i]);
for(int i=0;i<htn.length;i++)
subMenuContainer.remove(htn[i]);
validate();
getContentPane().repaint();
}
if(e.getSource()==item7){
pSouth.removeAll();
pNorth.setLayout(new GridLayout(7,1));
pSouth.setLayout(new GridLayout(1,1));
pNorth.add(item1);
pNorth.add(item2);
pNorth.add(item3);
pNorth.add(item4);
pNorth.add(item5);
pNorth.add(item6);
pNorth.add(item7);
pSouth.add(item8);
for(int i=0;i<btn.length;i++)
subMenuContainer.remove(btn[i]);
for(int i=0;i<ctn.length;i++)
subMenuContainer.remove(ctn[i]);
for(int i=0;i<dtn.length;i++)
subMenuContainer.remove(dtn[i]);
for(int i=0;i<etn.length;i++)
subMenuContainer.remove(etn[i]);
for(int i=0;i<ftn.length;i++)
subMenuContainer.remove(ftn[i]);
for(int i=0;i<gtn.length;i++)
subMenuContainer.add(gtn[i]);
for(int i=0;i<htn.length;i++)
subMenuContainer.remove(htn[i]);
validate();
getContentPane().repaint();
}
if(e.getSource()==item8){
pSouth.removeAll();
pNorth.setLayout(new GridLayout(8,1));
pNorth.add(item1);
pNorth.add(item2);
pNorth.add(item3);
pNorth.add(item4);
pNorth.add(item5);
pNorth.add(item6);
pNorth.add(item7);
pNorth.add(item8);
for(int i=0;i<btn.length;i++)
subMenuContainer.remove(btn[i]);
for(int i=0;i<ctn.length;i++)
subMenuContainer.remove(ctn[i]);
for(int i=0;i<dtn.length;i++)
subMenuContainer.remove(dtn[i]);
for(int i=0;i<etn.length;i++)
subMenuContainer.remove(etn[i]);
for(int i=0;i<ftn.length;i++)
subMenuContainer.remove(ftn[i]);
for(int i=0;i<gtn.length;i++)
subMenuContainer.remove(gtn[i]);
for(int i=0;i<htn.length;i++)
subMenuContainer.add(htn[i]);
validate();
getContentPane().repaint();
}
这些是我做课程设计时候的代码,里面的内容没改,,看看就很容易改的,希望能帮到大家!有不足之处望多多指教!!!
这里写图片描述
这就是效果图,就是根据你选择按下的按钮会弹出,其他的按钮都收缩。选择的那个按钮就只有一个按钮显示!