// TabbedPanel // A panel capable of displaying one of many components at a time. The // component to display is chosen by a row of tab buttons. import java.awt.*; import java.util.Vector; public class TabbedPanel extends Panel { TabSelector tab; // component for choosing panel TabbedDisplayPanel disp; // where other panels are displayed CardLayout card; TabbedPanel() { this(Util.body_hi, Util.dark_edge_hi, Util.body); } TabbedPanel(Color hi, Color lo, Color bk) { setLayout(new BorderLayout()); add("North",tab = new TabSelector(hi, lo, bk)); add("Center",disp = new TabbedDisplayPanel(hi, lo)); disp.setLayout(card = new CardLayout()); } // addItem // Add a component to be chosen by a tab with the given name void addItem(String n, Component c) { tab.addItem(n); disp.addItem(n, c); } // select // Display a component in the panel void select(String n) { tab.choose(n); disp.choose(n); } // chose // Called back by a TabSelector object when the user clicks on a tab void chose(String n) { disp.choose(n); } } class TabSelector extends Canvas { Color hi, lo, bk; Vector name = new Vector(); int chosen = 0; Font font = new Font("timesRoman", Font.PLAIN, 12), chfont = new Font(font.getName(), Font.BOLD, 13); TabSelector(Color h, Color l, Color b) { hi = h; lo = l; bk = b; } void addItem(String n) { name.addElement(n); paint(getGraphics()); } void choose(String n) { for(int i=0; i