cardlayout java_java中CardLayout的使用方法

import javax.swing.*;import java.awt.*;import java.awt.event.*;public class Card extendsJFrame{/** JFrame的布局管理器是BorderLayout*/JPanel p;//位于中心区域的面板

JButton b1,b2,b3,b4;//位于南部区域的四个按钮

JLabel l1,l2,l3,l4;

CardLayout c;//设置面板p的布局

Card(String name)

{super(name);this.setVisible(true);this.setBounds(400,300,400,400);

p= new JPanel();//实例化p

c = new CardLayout();//实例化c

p.setLayout(c);//设置面板p的布局为c,等价于p = new JPanel(c);//实例化4个按钮和标签

b1 = new JButton("previous");

b2= new JButton("two");

b3= new JButton("three");

b4= new JButton("next");

l1= new JLabel("first card");

l2= new JLabel("second card");

l3= new JLabel("thirth card");

l4= new JLabel("fourth card");//实例化4个子面板并设定相应背景颜色

JPanel p1 = newJPanel();

JPanel p2= newJPanel();

JPanel p3= newJPanel();

JPanel p4= newJPanel();

p1.setBackground(Color.green);

p2.setBackground(Color.pink);

p3.setBackground(Color.orange);

p4.setBackground(Color.lightGray);//把上面4个面板添加到中心面板p中,并把4个面板分别用编号为1,2,3,4代替

p.add(p1,"1");

p.add(p2,"2");

p.add(p3,"3");

p.add(p4,"4");//把4个标签分别添加到4个子面板中

p1.add(l1);

p2.add(l2);

p3.add(l3);

p4.add(l4);//实例化位于南部区域的面板,并添加4个按钮

JPanel psourth = newJPanel();

psourth.add(b1);

psourth.add(b2);

psourth.add(b3);

psourth.add(b4);//把p,psourth分别添加到本JFrame的中心区域和南部区域

this.add(p);//等价于this.add(p,BorderLayout.CENTER); 因为默认是把组件添加到中部

this.add(psourth,BorderLayout.SOUTH);//为按钮b1添加监听器,当被按下时显示面板p中的前一个子面板

b1.addActionListener(newActionListener()

{

@Overridepublic voidactionPerformed(ActionEvent e) {//TODO Auto-generated method stub

c.previous(p);//显示p中的上一个面板

}

});//为按钮b2添加监听器,当被按下时显示面板p中的第2个子面板

b2.addActionListener(newActionListener()

{

@Overridepublic voidactionPerformed(ActionEvent e) {//TODO Auto-generated method stub

c.show(p, "2");//显示p中代号为2的面板

}

});//以下类推

b3.addActionListener(newActionListener()

{

@Overridepublic voidactionPerformed(ActionEvent e) {//TODO Auto-generated method stub

c.show(p, "3");

}

});

b4.addActionListener(newActionListener()

{

@Overridepublic voidactionPerformed(ActionEvent e) {//TODO Auto-generated method stub

c.next(p);

}

});//使用匿名内部类为本Frame添加监听器,当点击关闭按钮时结束程序

this.addWindowListener(newWindowAdapter()

{public voidwindowClosing(WindowEvent e)

{

System.exit(0);

}

});

}public static voidmain(String[] args) {//TODO Auto-generated method stub

new Card("My Card");

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值