The Java Program: CardApplet.java
1 /*
2 <applet code=CardApplet width=350 height=150></applet>
3 */
4
5 import java.applet.Applet;
6 import java.awt.CardLayout;
7 import java.awt.BorderLayout;
8 import java.awt.Component;
9 import java.awt.Panel;
10 import java.awt.Button;
11 import java.awt.List;
12 import java.awt.TextField;
13 import java.awt.Checkbox;
14 import java.awt.Label;
15
16 import java.awt.event.ActionEvent;
17 import java.awt.event.ActionListener;
18 import java.awt.event.ItemEvent;
19 import java.awt.event.ItemListener;
20
21 class Card extends Panel {
22 Card (String lbl, Component c) {
23 add (new Label (lbl));
24 add (c);
25 }
26 }
27
28 // Panel of buttons to navigate among the different "screens"
29 class ButtonBar extends Panel {
30
31 private Button f,p,n,l;
32
33 ButtonBar (final CardApplet c) {
34 add (f=new Button ("First"));
35 add (p=new Button ("Previous"));
36 add (n=new Button ("Next"));
37 add (l=new Button ("Last"));
38
39 // one class for all buttons
40 class Listener implements ActionListener {
41 public void actionPerformed (ActionEvent e) {
42 c.action (e.getActionCommand());
43 }
44 }
45 f.addActionListener (new Listener ());
46 p.addActionListener (new Listener ());
47 n.addActionListener (new Listener ());
48 l.addActionListener (new Listener ());
49 }
50 }
51
52
53 public class CardApplet extends Applet {
54
55 private Panel cards = new Panel();
56 private CardLayout cl = new CardLayout();
57 private List list = new List (0, false);
58
59 public void flip () { cl.show (cards, list.getSelectedItem()); }
60 public void first () { cl.first (cards); }
61 public void next () { cl.next (cards); }
62 public void previous() { cl.previous (cards); }
63 public void last () { cl.last (cards); }
64 public void action (String cmd) {
65 if ("First".equals (cmd)) {
66 cl.first (cards);
67 } else if ("Previous".equals (cmd)) {
68 cl.previous (cards);
69 } else if ("Next".equals (cmd)) {
70 cl.next (cards);
71 } else if ("Last".equals (cmd)) {
72 cl.last (cards);
73 }
74 // else nothing
75 }
76
77
78 public void init() {
79 setLayout (new BorderLayout());
80
81 cards.setLayout (cl);
82
83 cards.add ("Card 1", new Card ("Card 1",new Button("one")));
84 cards.add ("Card 2", new Card ("Card 2",new TextField("two",20)));
85 cards.add ("Card 3", new Card ("Card 3",new Checkbox("three")));
86
87 list.addItem ("Card 1");
88 list.addItem ("Card 2");
89 list.addItem ("Card 3");
90
91 class Listener implements ItemListener {
92 public void itemStateChanged (ItemEvent event) {
93 flip ();
94 }
95 }
96 list.addItemListener (new Listener ());
97
98 add ("Center", cards);
99 add ("South", new ButtonBar(this));
100 add ("West", list);
101 }
102 }