2021-05-12

《化羽Java GUI学习笔记》          我自己的学习笔记以后方便复习,也希望可以给找不到方法学习的人一点点帮助。如果有错误请大家告诉一下相互学习。

卡片式布局管理器  CardLayout

1.CardLayout也是定义在java.awt包中的布局管理器,这是一种卡片式的布局管理器,它将容器中的组件处理为一系列卡片,每一时刻只显示出其中的一张。
 
 注意:在javax.swing包中定义了JTabbedPane类,它使用的效果与CardLayout类似,但更简单。
 

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class CardLayoutDemo extends MouseAdapter{
	JPanel p1,p2,p3,p4,p5;
	JLabel l1,l2,l3,l4,l5;
	
	//声明一个对象CardLayout对象
	CardLayout myCard;
    JFrame frame;
	Container contentPane;

	public static void main(String[] args) {
		CardLayoutDemo that = new CardLayoutDemo();
		that.go();
	}
	
	public void go() {
		frame = new JFrame("Card Test");
		contentPane = frame.getContentPane();
		myCard = new CardLayout();
		//设置CardLayout布局管理器
		contentPane.setLayout(myCard);
		
		p1 = new JPanel();
		p2 = new JPanel();
		p3 = new JPanel();
		p4 = new JPanel();
		p5 = new JPanel();
	
		//为每一个JPanel创建一个标签设定不同的背景颜色,以便区分
		l1 = new JLabel("This is the fiest JPanel");
		p1.add(l1);
		p1.setBackground(Color.yellow);
		
		l2 = new JLabel("This is the second JPanel");
		p2.add(l2);
		p2.setBackground(Color.green);
		
		l3 = new JLabel("This is the third JPanel");
		p3.add(l3);
		p3.setBackground(Color.magenta);
		
		l4 = new JLabel("This is the fourth JPanel");
		p4.add(l4);
		p4.setBackground(Color.white);
		
		l5 = new JLabel("This is the fifth JPanel");
		p5.add(l5);
		p5.setBackground(Color.cyan);
		
		//设定鼠标事件监听程序
		p1.addMouseListener(this);
		p2.addMouseListener(this);
		p3.addMouseListener(this);
		p4.addMouseListener(this);
		p5.addMouseListener(this);
		
		//将每个JPanel作为一张卡片加入frame的内容窗格
		contentPane.add(p1,"First");      //First"式P1的名字
		contentPane.add(p2,"Second"); 
		contentPane.add(p3,"Third"); 
		contentPane.add(p4,"Fourth"); 
		contentPane.add(p5,"Fifth"); 
		
		//显示第一张卡片
		myCard.show(contentPane,"First"); //显示名为“First”的卡片
		frame.setSize(300,200);
		frame.show();
	}
	
	    //处理鼠标事件,每当敲击鼠标键时,即显示下一张卡片。
	    //如果已经显示到最后一张,则从新显示第一张。
	public void mouseClicked(MouseEvent e) {
		myCard.next(contentPane);
	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值