测试代码:
//CardLayoutDemo.java
import java.awt.*;
import javax.swing.*;
public class CardLayoutDemo extends JFrame{
protected CardLayout layout = new CardLayout();
public static void main(String [] args) throws Exception {
CardLayoutDemo cd = new CardLayoutDemo();
cd.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
cd.displayTab("Green Tab");
cd.setSize(400,300);
cd.setVisible(true);
Thread.sleep(3000);
cd.displayTab("Blue Tab");
}
public CardLayoutDemo(){
JPanel tab;
getContentPane().setLayout(layout);
tab = new JPanel();
tab.setBackground(Color.red);
getContentPane().add(tab,"Red Tab");
tab = new JPanel();
tab.setBackground(Color.green);
getContentPane().add(tab,"Green Tab");
tab = new JPanel();
tab.setBackground(Color.blue);
getContentPane().add(tab,"Blue Tab");
}
public void displayTab(String name){
layout.show(getContentPane(),name);
}
}
CardLayout可能是JAVA中用的最少的布局管理器,用它可以创建选项卡用户界面。
1。子组件的尺寸
使用CardLayout时,只有一个组件是可见的,并且尺寸设为容器的可显示区域。
2 。尺寸调整
当容器的尺寸改变时,显示组件的尺寸也随着改变。。
3 。 容器尺寸
CardLayout把容器的首选尺寸设置为子组件的最大宽度和高度。