Source of MultipleFaces.java


  1: 
  2: import javax.swing.JApplet;
  3: import java.awt.Graphics;
  4: import java.awt.Color;
  5: 
  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;
 11: 
 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;
 18: 
 19:     public static final int NOSE_DIAMETER = 5;
 20:     public static final int X_NOSE0 = 32;
 21:     public static final int Y_NOSE0 = 25;
 22: 
 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;
 29: 
 30:     public void paint(Graphics canvas)
 31:     {
 32:                 int i, xOffset, yOffset; //Want i to exist after the loop ends
 33: 
 34:         for (i = 0; i <= 4; i++)
 35:         {//Draw one face:
 36:                         xOffset = 50 * i;
 37:                         yOffset = 30 * i;
 38: 
 39:             //Draw face circle:
 40:             if (i % 2 == 0)//if i is even
 41:             {//Make face light gray
 42:                 canvas.setColor(Color.LIGHT_GRAY);
 43:                 canvas.fillOval(X_FACE0 + xOffset, Y_FACE0 + 30 * i,
 44:                                 FACE_DIAMETER, FACE_DIAMETER);
 45:             }
 46:             canvas.setColor(Color.BLACK);
 47:             canvas.drawOval(X_FACE0 + xOffset, Y_FACE0 + yOffset,
 48:                             FACE_DIAMETER, FACE_DIAMETER);
 49:             //Draw eyes:
 50:             canvas.setColor(Color.BLACK);
 51:             canvas.fillOval(X_RIGHT_EYE0 + xOffset, Y_RIGHT_EYE0 + yOffset,
 52:                                    EYE_WIDTH, EYE_HEIGHT);
 53:             canvas.fillOval(X_LEFT_EYE0 + xOffset, Y_LEFT_EYE0 + yOffset,
 54:                                    EYE_WIDTH, EYE_HEIGHT);
 55:             //Draw nose:
 56:             canvas.setColor(Color.BLACK);
 57:             canvas.fillOval(X_NOSE0 + xOffset, Y_NOSE0 + yOffset,
 58:                                    NOSE_DIAMETER, NOSE_DIAMETER);
 59:             //Draw mouth:
 60:             canvas.setColor(Color.BLACK);
 61:             canvas.drawArc(X_MOUTH0 + xOffset, Y_MOUTH0 + yOffset,
 62:                            MOUTH_WIDTH, MOUTH_HEIGHT0 + 3 * i,
 63:                            MOUTH_START_ANGLE, MOUTH_EXTENT_ANGLE);
 64:         }
 65:         //i is 5 when the previous loop ends
 66:                 xOffset = 50 * i;
 67:                 yOffset = 30 * i;
 68: 
 69:         //Draw kissing face:
 70:         //Draw face circle:
 71:         canvas.setColor(Color.BLACK);
 72:         canvas.drawOval(X_FACE0 + xOffset, Y_FACE0 + yOffset,
 73:                         FACE_DIAMETER, FACE_DIAMETER);
 74:         //Draw eyes:
 75:         canvas.setColor(Color.BLACK);
 76:         canvas.fillOval(X_RIGHT_EYE0 + xOffset, Y_RIGHT_EYE0 + yOffset,
 77:                         EYE_WIDTH, EYE_HEIGHT);
 78:         canvas.fillOval(X_LEFT_EYE0 + xOffset, Y_LEFT_EYE0 + yOffset,
 79:                         EYE_WIDTH, EYE_HEIGHT);
 80:         //Draw nose:
 81:         canvas.setColor(Color.BLACK);
 82:         canvas.fillOval(X_NOSE0 + xOffset, Y_NOSE0 + yOffset,
 83:                         NOSE_DIAMETER, NOSE_DIAMETER);
 84:         //Draw mouth in shape of a kiss:
 85:         canvas.setColor(Color.BLACK);
 86:         canvas.fillOval(X_MOUTH0 + xOffset + 10, Y_MOUTH0 + yOffset,
 87:                         MOUTH_WIDTH - 20, MOUTH_WIDTH - 20);
 88:         //Add text:
 89:         canvas.drawString("Kiss, Kiss.",
 90:                                                 X_FACE0 + xOffset + FACE_DIAMETER, Y_FACE0 + yOffset);
 91: 
 92: 
 93:         //Draw blushing face:
 94:         i++;
 95:                 xOffset = 50 * i;
 96:                 yOffset = 30 * i;
 97: 
 98:         //Draw face circle:
 99:         canvas.setColor(Color.GRAY);
100:         canvas.fillOval(X_FACE0 + xOffset, Y_FACE0 + yOffset,
101:                         FACE_DIAMETER, FACE_DIAMETER);
102:         canvas.setColor(Color.BLACK);
103:         canvas.drawOval(X_FACE0 + xOffset, Y_FACE0 + yOffset,
104:                         FACE_DIAMETER, FACE_DIAMETER);
105:         //Draw eyes:
106:         canvas.setColor(Color.BLACK);
107:         canvas.fillOval(X_RIGHT_EYE0 + xOffset, Y_RIGHT_EYE0 + yOffset,
108:                         EYE_WIDTH, EYE_HEIGHT);
109:         canvas.fillOval(X_LEFT_EYE0 + xOffset, Y_LEFT_EYE0 + yOffset,
110:                         EYE_WIDTH, EYE_HEIGHT);
111:         //Draw nose:
112:         canvas.setColor(Color.BLACK);
113:         canvas.fillOval(X_NOSE0 + xOffset, Y_NOSE0 + yOffset,
114:                         NOSE_DIAMETER, NOSE_DIAMETER);
115:         //Draw mouth:
116:         canvas.setColor(Color.BLACK);
117:         canvas.drawArc(X_MOUTH0 + xOffset, Y_MOUTH0 + yOffset, MOUTH_WIDTH,
118:                        MOUTH_HEIGHT0 + 3 * (i - 2),
119:                        MOUTH_START_ANGLE, MOUTH_EXTENT_ANGLE);
120:         //Add text:
121:         canvas.drawString("Tee Hee.",
122:                                                   X_FACE0 + xOffset + FACE_DIAMETER, Y_FACE0 + yOffset);
123:     }
124: }