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