JAVA GUI之CardLayout

Posted Andy 胡

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA GUI之CardLayout相关的知识,希望对你有一定的参考价值。

技术分享技术分享

package refNet;

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

public class CardLayoutTest extends JFrame implements ActionListener {

    private static final long serialVersionUID = 1L;
    JButton b0, b1, b2, b3;
    Panel cardPanel = new Panel();
    Panel controlpaPanel = new Panel();

    // 定义卡片布局对象
    CardLayout card = new CardLayout();

    // 定义字符数组,为卡片命名
    String cardName[] = { "card0", "card1", "card2", "card3" };

    // 定义构造函数

    public CardLayoutTest() {
        super("卡片布局管理器");
        setSize(400, 200);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLocationRelativeTo(null);
        setVisible(true);

        // 设置cardPanel面板对象为卡片布局
        cardPanel.setLayout(card);

        // 循环,在cardPanel面板对象中添加4个按钮
        // 因为cardPanel面板对象为卡片布局,因此初始时显示最先添加的组件
        for (int i = 0; i < 4; i++) {
            // 面板中添加的每个按钮对应设置一个卡片名
            cardPanel.add(cardName[i], new JButton("卡片中按钮" + i));
        }

        // 实例化【切换按钮】对象
        b0 = new JButton("0");
        b1 = new JButton("1");
        b2 = new JButton("2");
        b3 = new JButton("3");

        // 为按钮对象注册监听器
        b0.addActionListener(this);
        b1.addActionListener(this);
        b2.addActionListener(this);
        b3.addActionListener(this);

        controlpaPanel.add(b0);
        controlpaPanel.add(b1);
        controlpaPanel.add(b2);
        controlpaPanel.add(b3);

        // 定义容器对象为当前窗体容器对象
        Container container = getContentPane();

        // 将 cardPanel面板放置在窗口边界布局的中间,窗口默认为边界布局
        container.add(cardPanel, BorderLayout.CENTER);

        // 将controlpaPanel面板放置在窗口边界布局的南边,
        container.add(controlpaPanel, BorderLayout.SOUTH);

    }

    @Override
    public void actionPerformed(ActionEvent e) {
        // 用户单击b0按钮时执行的语句

        if (e.getSource() == b0) {
            //  show():翻转到使用 addLayoutComponent 添加到此布局的具有指定 name 的组件。
            card.show(cardPanel, cardName[0]);
        }

        if (e.getSource() == b1) {
            card.show(cardPanel, cardName[1]);
        }

        if (e.getSource() == b2) {
            card.show(cardPanel, cardName[2]);
        }

        if (e.getSource() == b3) {
            card.show(cardPanel, cardName[3]);
        }
    }

    public static void main(String[] args) {

        CardLayoutTest kapian = new CardLayoutTest();
    }

}

 

以上是关于JAVA GUI之CardLayout的主要内容,如果未能解决你的问题,请参考以下文章

Java中CardLayout的使用

Java AWT 图形界面编程LayoutManager 布局管理器 ⑤ ( CardLayout 卡片布局 | ActionListener 按钮点击事件添加 )

Java AWT 图形界面编程LayoutManager 布局管理器 ⑤ ( CardLayout 卡片布局 | ActionListener 按钮点击事件添加 )

java中CardLayout的错误父级

十. 图形界面(GUI)设计5.布局设计

Java中CardLayout布局方式的应用