JAVA Swing 小白学习篇之卡片布局管理器怎么用

CardLayout(卡片布局管理器)能够帮助用户实现多个成员共享同一个显不空间,并且一次只显示一个容器组件的内容。

  • CardLayout 布局管理器将容器分成许多层,每层的显示空间占据整个容器的大小,但是每层只允许放置一个组件。CardLayout 的构造方法如下。
  • CardLayout():构造一个新布局,默认间隔为 0。
  • CardLayout(int hgap, int vgap):创建布局管理器,并指定组件间的水平间隔(hgap)和垂直间隔(vgap)。

代码如下

package cn.com.planet;
import java.awt.CardLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
public class CardLayOut {
/*author:命运的信徒
 * date:2019/1/17
 * arm:swing的卡片布局管理器
 */
	/*什么是卡片布局管理器?
	 * 简单的来说,就是把窗体分多个层,每层占据一个窗体的大小;一次只能显示一个层,其他层就是被隐藏的状态
	 * 大打个比方,一个本子,每页纸都一样大小,同样的位置,但是只能看一页的内容
	 * 
	 */
	private static void setLay(){
		//设置窗体大小和标题
		JFrame jf=new JFrame("卡片管布局管理器");
		jf.setSize(300, 300);
		//创建两个面板就是两层
		JPanel jp1=new JPanel();
		//第一层包括三个按钮
		JButton jb1=new JButton("登录按钮");
		JButton jb2=new JButton("注册按钮");
		JButton jb3=new JButton("找回密码按钮");
		jp1.add(jb1);
		jp1.add(jb2);
		jp1.add(jb3);
		//第二层包括三个文本框
		JPanel jp2=new JPanel();
		JTextField jtf1=new JTextField("用户名文本框");
		JPasswordField jtf2=new JPasswordField("密码文本框");
		JTextField jtf3=new JTextField("手机号码文本框");
		jp2.add(jtf1);
		jp2.add(jtf2);
		jp2.add(jtf3);
		//初始化布局方式
		CardLayout card=new CardLayout();
		//创建一个面板,设置这个面板的布局方式为卡片式布局
		JPanel jp3=new JPanel(card);
        //这个面板包括面板1面板2,并且给这两个面板命名,区分
		jp3.add(jp1,"card1");
		jp3.add(jp2,"card2");
		//卡片布局显示(卡片布局的面板名称,要显示面板的名称)
		card.show(jp3, "card1");
		//窗体添加卡片布局管理的面板;
		jf.add(jp3);
		//设置关闭窗体就是关闭程序
		jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		//设置可见
		jf.pack();
		jf.setVisible(true);
	}
	public static void main(String[] args) {
		setLay();
	}
}

效果如下

JAVA Swing 小白学习篇之卡片布局管理器怎么用_第1张图片

如果把如上代码

//卡片布局显示(卡片布局的面板名称,要显示面板的名称)
        card.show(jp3, "card1");

改成

//卡片布局显示(卡片布局的面板名称,要显示面板的名称)
        card.show(jp3, "card2");

那么效果就是如下

JAVA Swing 小白学习篇之卡片布局管理器怎么用_第2张图片

 

你可能感兴趣的:(java编程专栏)