public class MultipleFaces extends JApplet
2: import javax.swing.JApplet;
3: import java.awt.Graphics;
4: import java.awt.Color;
6: public class MultipleFaces extends JApplet
7: {
8: public static final int FACE_DIAMETER = 50;
9: public static final int X_FACE0 = 10;
10: public static final int Y_FACE0 = 5;
12: public static final int EYE_WIDTH = 5;
13: public static final int EYE_HEIGHT = 10;
14: public static final int X_RIGHT_EYE0 = 20;
15: public static final int Y_RIGHT_EYE0 = 15;
16: public static final int X_LEFT_EYE0 = 45;
17: public static final int Y_LEFT_EYE0 = Y_RIGHT_EYE0;
19: public static final int NOSE_DIAMETER = 5;
20: public static final int X_NOSE0 = 32;
21: public static final int Y_NOSE0 = 25;
23: public static final int MOUTH_WIDTH = 30;
24: public static final int MOUTH_HEIGHT0 = 0;
25: public static final int X_MOUTH0 = 20;
26: public static final int Y_MOUTH0 = 35;
27: public static final int MOUTH_START_ANGLE = 180;
28: public static final int MOUTH_EXTENT_ANGLE = 180;
30: /**
31: g is the drawing area. pos is a parameter for the position of the face.
32: As pos increases, the face is drawn lower and further to the right.
33: */
34: private void drawFaceSansMouth(Graphics g, int pos)
35: {
36: g.setColor(Color.BLACK);
37: g.drawOval(X_FACE0 + 50 * pos, Y_FACE0 + 30 * pos,
38: FACE_DIAMETER, FACE_DIAMETER);
39: //Draw eyes:
40: g.setColor(Color.BLUE);
41: g.fillOval(X_RIGHT_EYE0 + 50 * pos, Y_RIGHT_EYE0 + 30 * pos,
42: EYE_WIDTH, EYE_HEIGHT);
43: g.fillOval(X_LEFT_EYE0 + 50 * pos, Y_LEFT_EYE0 + 30 * pos,
44: EYE_WIDTH, EYE_HEIGHT);
45: //Draw nose:
46: g.setColor(Color.BLACK);
47: g.fillOval(X_NOSE0 + 50 * pos, Y_NOSE0 + 30 * pos,
48: NOSE_DIAMETER, NOSE_DIAMETER);
49: }
51: public void paint(Graphics canvas)
52: {
53: int i;
54: for (i = 0; i < 5; i++)
55: {//Draw one face:
56: if (i % 2 == 0)//If i is even,
57: { //make face yellow
58: canvas.setColor(Color.YELLOW);
59: canvas.fillOval(X_FACE0 + 50 * i, Y_FACE0 + 30 * i,
60: FACE_DIAMETER, FACE_DIAMETER);
61: }
62: drawFaceSansMouth(canvas, i);
63: //Draw mouth:
64: canvas.setColor(Color.RED);
65: canvas.drawArc(X_MOUTH0 + 50 * i, Y_MOUTH0 + 30 * i,
66: MOUTH_WIDTH, MOUTH_HEIGHT0 + 3 * i,
67: MOUTH_START_ANGLE, MOUTH_EXTENT_ANGLE);
68: }
69: //i == 5
71: //Draw kissing face:
72: drawFaceSansMouth(canvas, i);
73: //Draw mouth in shape of a kiss:
74: canvas.setColor(Color.RED);
75: canvas.fillOval(X_MOUTH0 + 50 * i + 10, Y_MOUTH0 + 30 * i,
76: MOUTH_WIDTH - 20, MOUTH_WIDTH - 20);
77: //Add text:
78: canvas.setColor(Color.BLACK);
79: canvas.drawString("Kiss, Kiss.",
80: X_FACE0 + 50 * i + FACE_DIAMETER, Y_FACE0 + 30 * i);
82: //Draw blushing face:
83: i++;
84: //Draw face circle:
85: canvas.setColor(Color.PINK);
86: canvas.fillOval(X_FACE0 + 50 * i, Y_FACE0 + 30 * i,
87: FACE_DIAMETER, FACE_DIAMETER);
88: drawFaceSansMouth(canvas, i);
89: //Draw mouth:
90: canvas.setColor(Color.RED);
91: canvas.drawArc(X_MOUTH0 + 50 * i, Y_MOUTH0 + 30 * i, MOUTH_WIDTH,
92: MOUTH_HEIGHT0 + 3 * (i - 2),
93: MOUTH_START_ANGLE, MOUTH_EXTENT_ANGLE);
94: //Add text:
95: canvas.setColor(Color.BLACK);
96: canvas.drawString("Tee Hee.",
97: X_FACE0 + 50 * i + FACE_DIAMETER, Y_FACE0 + 30 * i);
98: }
99: }