卡片布局,CardLayout应用

       以前写界面没用到,现在发现挺方便。我是在这种情况下用的。我的JFrame界面上的菜单栏有几个菜单项,点击时在同一个地方显示不同的东西。有点像浏览器打开几个网页,由一个网页切换到另一个网页时,显示的内容在变化。

public class CenterPanel extends JPanel{
	public CenterPanel(){
		addPanel();		
	}
	//在这个面板上家卡片布局
	public void addPanel(){
		this.setPreferredSize(new Dimension(500,600));
		CardLayout card=new CardLayout();
                //设置它的布局为卡片布局
		this.setLayout(card);
                //创建要用来切换的对象(此处假设是要显示几个Panel)
 		LeadPanel lead=new LeadPanel();
		ShootingPanel shoot=new ShootingPanel();
		PostPanel post=new PostPanel();
                //将要用切换的东西加进去
		this.add(lead,"lead");
		this.add(shoot,"shoot");
		this.add(post,"post");	
	}
}




public class ChangeCenterListener implements java.awt.event.ActionListener{
	//得到主框架
	public ChangeCenterListener(){
	}
	public void actionPerformed(ActionEvent e) {
		CardLayout card=(CardLayout) MainFrame.centerpanel.getLayout();
			//得到按钮字符
			 String str=e.getActionCommand();
                        //根据按钮来显示不同内容
			if(str.equals("1")){
				card.show(MainFrame.centerpanel, "lead");	
			}
			if(str.equals("2")){
				card.show(MainFrame.centerpanel, "shoot");
			}
			if(str.equals("3")){
				card.show(MainFrame.centerpanel, "post");
			}
		}	
}

 创建一个panel后设置它的布局为CardLayout,让后将要切换的组件加到这个Panel上。然后再用这个panel的布局去show。可以去查看CardLayout的show方法和

你可能感兴趣的:(CardLayout,卡片布局,JPanel的切换)