📄 cardlayouttest.java
字号:
//CardLayout.java
import java.awt.*;
import javax.swing.*;
import java.util.*;
//因为要实现自动切换,所以使用了多线程
public class CardLayoutTest extends JFrame implements Runnable {
private CardLayout cl = null; //布局对象
private Container cp = null; //当前容器
private Thread th = null; //程序运行主线程
public CardLayoutTest() {
super("CardLayout Test");
JButton btn = null;
cl = new CardLayout(); //创建布局对象
cp = this.getContentPane(); //获得当前窗口的容器
cp.setLayout(cl); //设置布局方式
//以下分别加入三个按钮,名称和背景各不相同
btn = new JButton("第一页");
cp.add("Page1",btn); //卡片1叫Page1
btn = new JButton("第二页");
btn.setBackground(Color.cyan); //青色背景
cp.add("Page2",btn); //卡片2叫Page2
btn = new JButton("第三页");
btn.setBackground(Color.pink); //品红背景
cp.add("Page3",btn); //卡片3叫Page3
}
//实现了Runnable接口,必须实现该方法
public void run() {
int i = -1;
while (th != null) {
i = (i+1) % 3; //卡片索引号(0,1,2)
//显示当前容器cp中指定标签的卡片
cl.show(cp,"Page" + (i+1));
try {
Thread.sleep(500); //进程休眠500毫秒
} catch (InterruptedException e) {
}
}
}
public void start() { //启动主线程
th = new Thread(this);
th.start();
}
public void stop() { //停止主线程
th = null;
}
public static void main(String[]args) {
CardLayoutTest clt = new CardLayoutTest();
clt.setSize(400,200);
clt.setDefaultCloseOperation(EXIT_ON_CLOSE);
clt.setVisible(true);
clt.start(); //启动线程
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -