// Written by: Darren Gates & Ray Klefstad // Date: January 2000 // School: U.C. Irvine import java.awt.*; import java.awt.event.*; import java.applet.*; public class CardLayoutExample extends Applet { public void init() { new MyCardPanel(); } } class MyCardPanel extends Frame { private Tab1 p; private Tab2 p1; private Tab3 p2; private Panel cardPanel; private CardLayout card; private Color activeColor = new Color(200,200,200); private Color inactiveColor = new Color(150,150,150); public MyCardPanel() { p = new Tab1(); p1 = new Tab2(); p2 = new Tab3(); setBackground(activeColor); setBounds(200,200,300,350); addWindowListener(new Terminator()); Panel controls = new Panel(new GridLayout(1,3)); controls.add(p); controls.add(p1); controls.add(p2); card = new CardLayout(); cardPanel = new Panel(card); cardPanel.add("Card1", new FirstCard()); cardPanel.add("Card2", new SecondCard()); cardPanel.add("Card3", new ThirdCard()); Panel border = new Panel(new BorderLayout()); border.add(controls, "North"); border.add(cardPanel, "Center"); add(border); setVisible(true); } public class Terminator extends WindowAdapter { public void windowClosing(WindowEvent e) { dispose(); } } public class FirstCard extends Panel { public FirstCard() { add(new Label("First Card")); setBackground(activeColor); } } public class SecondCard extends Panel { public SecondCard() { add(new Label("Second Card")); setBackground(activeColor); } } public class ThirdCard extends Panel { public ThirdCard() { add(new Label("Third Card")); setBackground(activeColor); } } public class Tab1 extends Panel { public Tab1() { addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent e) { card.show(cardPanel, "Card1"); setBackground(activeColor); p1.setBackground(inactiveColor); p2.setBackground(inactiveColor); } }); } public void paint(Graphics g) { g.drawString("Tab 1",25,20); } public Dimension getPreferredSize() { // only need this for one of the tabs return new Dimension(100,35); } } public class Tab2 extends Panel { public Tab2() { setBackground(inactiveColor); addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent e) { card.show(cardPanel, "Card2"); setBackground(activeColor); p.setBackground(inactiveColor); p2.setBackground(inactiveColor); } }); } public void paint(Graphics g) { g.drawString("Tab 2",25,20); } } public class Tab3 extends Panel { public Tab3() { setBackground(inactiveColor); addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent e) { card.show(cardPanel, "Card3"); setBackground(activeColor); p.setBackground(inactiveColor); p1.setBackground(inactiveColor); } }); } public void paint(Graphics g) { g.drawString("Tab 3",25,20); } } }