/* An Applet that illustrates a Card Layout. It creates a panel for each card with a button that brings up the next card. */
// To run this applet, click on Cards3.html.
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
public class
Cards extends Applet
{
private
Panel [] panels;
private
CardLayout deck;
public
void init ()
{
deck = new
CardLayout ();
setLayout
(deck);
panels = new
Panel [5];
for (int count = 0;
count < 5; count ++)
setUpPanel (panels [count], "" + count, count);
} // method
init
private
void setUpPanel (Panel panel, String name,
int cardNumber)
{
Color c =
getColor (cardNumber);
panel = new
Panel ();
Canvas canvas
= getCanvas (c);
panel.add
(canvas);
Button button
= new Button ("Next
Card");
button.addActionListener
(new cardListener (this,
deck));
panel.add
(button);
add (panel,
name);
} // method
setUpPanel
private
Color getColor (int cardNumber)
{
Color c =
Color.red;
switch (cardNumber)
{
case 0: c = Color.red; break;
case 1: c = Color.blue; break;
case 2: c = Color.green; break;
case 3: c = Color.orange; break;
case 4: c = Color.cyan; break;
default: c = Color.black;
} //
switch
return c;
} // method
getColor
private
Canvas getCanvas (Color c)
{
Canvas canvas
= new Canvas ();
canvas.setBackground
(c);
canvas.setSize
(50, 50);
return canvas;
} // method
getCanvas
} // class Cards
class cardListener implements
ActionListener
{
private
Applet cardApplet;
private
CardLayout deck;
cardListener (Applet cardApplet, CardLayout
deck)
{
this.cardApplet = cardApplet;
this.deck = deck;
} // constructor
public
void actionPerformed (ActionEvent event)
{
deck.next
(cardApplet);
} // method
actionPerformed
} // class firstListener