10.4 使用布局管理器3(CardLayout)

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);
    }
}

\

posted @ 2016-05-31 09:42  榆次老城  阅读(218)  评论(0编辑  收藏  举报