CardLayout是什么

CardLayout布局允许进行多套界面的设计,通过切换界面来实现布局样式的改变。CardLayout类似与一叠卡片,默认最先添加的在前面,界面始终只展示一个卡片

导入

import java.awt.CardLayout;

创建

CardLayout layout=new CardLayout();

显示下一个卡片界面

显示下一个卡片界面 this.getContentPane()的作用是初始化一个容器,用来在容器上添加一些控件

layout.next(this.getContentPane());

设置布局样式

setLayout(layout);

添加卡片

与添加的顺序有关,默认从第一个添加的开始

        add("a",new JButton("0"));
        add("b",new JButton("1"));
        add("c",new JButton("2"));
        add("d",new JButton("3"));
        add("e",new JButton("4"));

自动切换下一卡片,每个卡片上是一个按钮

import java.awt.CardLayout;

import javax.swing.JButton;
import javax.swing.JFrame;

public class Source6 extends JFrame{
    CardLayout layout;
    public void rotate() {

        while (true) {
        try {
            Thread.sleep(500);  
            /*
             * thread.sleep()是让线程休眠,也就是暂时中断线程在中断过程中难免会出现异常,抛出就是让程序强制执行你的代码,异常处理相当于过滤掉了 异常并不是错误
             */
        } catch (Exception e) {
            // TODO: handle exception
        }

        layout.next(this.getContentPane()); 

        }

    }

    Source6() {

        setTitle("CardLayout");
        layout=new CardLayout();
        setLayout(layout);

        add("a",new JButton("0"));
        add("b",new JButton("1"));
        add("c",new JButton("2"));
        add("d",new JButton("3"));
        add("e",new JButton("4"));

        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(300, 100);
        setVisible(true);

    }

    public static void main(String[] args) {
        new Source6().rotate();
        /*
        Source6 c =new Source6();
        c.rotate();
        */
    }
}
最后修改:2022 年 03 月 08 日
如果觉得我的文章对你有用,请随意赞赏