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();
*/
}
}