3)CardLayout布局管理器
CardLayout布局管理器以时间而非空间来管理它里面的组件,它将加入容器的所有组件看成一叠卡片,每次只要最上面的那个Component才可见。就好像一副扑克牌,它们叠在一起,每次只有最上面的一张扑克牌可见。
CardLayout提供了如下两个构造器:1)CardLayout():创建默认的CardLayout布局管理器。
2)CardLayout(int hgap,int vgap):通过指定卡片与容器左右边界的间距(hgap)、上下边界(vgap)的间距来创建CardLayout布局管理器。
CardLayout用于控制组件可见的5个常用方法:
1)first(Container target):显示target容器中的第一个卡片。
2)last(Container target):显示target容器中的最后一个卡片。
3)previous(Container target):显示target容器中前一个卡片。
4)next(Container target):显示target容器中下一个卡片。
5)show(Container target,String name):显示target容器中指定名字的卡片。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | package cardlayout.dolphin.awt; import java.awt.BorderLayout; import java.awt.Button; import java.awt.CardLayout; import java.awt.Frame; import java.awt.Panel; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class CardLayoutTest { public static void main(String[] args) { // TODO 自动生成的方法存根 Frame f = new Frame(CardLayoutTest); String[] names = {第一张,第二张,第三张,第四张,第五张}; final CardLayout c = new CardLayout(); final Panel p1 = new Panel(); p1.setLayout(c); for ( int i = 0 ; i < names.length; ++i) { p1.add(names[i], new Button(names[i])); } Panel p2 = new Panel(); //控制显示上一张按钮 Button btn_Pre = new Button(上一张); btn_Pre.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ c.previous(p1); } }); //控制显示下一张按钮 Button btn_Next = new Button(下一张); btn_Next.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ c.next(p1); } }); //控制显示第一张按钮 Button btn_First = new Button(第一张); btn_First.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ c.first(p1); } }); //控制显示最后一张按钮 Button btn_Last = new Button(最后一张); btn_Last.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ c.last(p1); } }); //控制显示最后一张按钮 Button btn_3rd = new Button(第三张); btn_3rd.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ c.show(p1,第三张); } }); p2.add(btn_Pre); p2.add(btn_Next); p2.add(btn_First); p2.add(btn_Last); p2.add(btn_3rd); f.add(p1); f.add(p2,BorderLayout.SOUTH); f.pack(); f.setVisible( true ); } } |