Source of MultipleFaces.java


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