在本章的前部,向我们介绍了老式的CardLayout,并且注意到我们怎样去管理我们所有的卡片开关。有趣的是,有人现在认为这是一种不错的设计。幸运的是,Swing用JTabbedPane对它进行了修补,由JTabbedPane来处理这些卡片,开关和其它的任何事物。对比CardLayout和JTabbedPane,我们会发现惊人的差异。
下面的程序例子十分的有趣,因为它利用了前面例子的设计。它们都是做为JPanel的衍生物来构建的,因此这个程序将安放前面的每个例子到它自己在JTabbedPane的窗格中。我们会看到利用RTTI制造的程序十分的小巧精致:
//: Tabbed.java
// Using tabbed panes
package c13.swing;
import java.awt.*;
import javax.swing.*;
import javax.swing.border.*;
public class Tabbed extends JPanel {
static Object[][] q = {
{ "Felix", Borders.class },
{ "The Professor", Buttons.class },
{ "Rock Bottom", ButtonGrouPS.class },
{ "