      1  import java.awt.Color;

      2  import java.awt.Graphics;

      3  import java.awt.Graphics2D;

      4  import java.awt.Rectangle;

      5  import java.awt.geom.Ellipse2D;

      6  import java.awt.geom.Line2D;

      7  import javax.swing.JComponent;

      8

      9  /*

     10     A component that draws an alien face

     11  */

     12  public class FaceComponent extends JComponent

     13  {

     14     public void paintComponent(Graphics g)

     15     {

     16        // Recover Graphics2D

     17        Graphics2D g2 = (Graphics2D) g;

     18

     19        // Draw the head

     20        Ellipse2D.Double head = new Ellipse2D.Double(5, 10, 100, 150);

     21        g2.draw(head);

     22

     23        // Draw the eyes

     24        g2.setColor(Color.GREEN);

     25        Rectangle eye = new Rectangle(25, 70, 15, 15);

     26        g2.fill(eye);

     27        eye.translate(50, 0);

     28        g2.fill(eye);

     29

     30        // Draw the mouth

     31        Line2D.Double mouth = new Line2D.Double(30, 110, 80, 110);

     32        g2.setColor(Color.RED);

     33        g2.draw(mouth);

     34

     35        // Draw the greeting

     36        g2.setColor(Color.BLUE);

     37        g2.drawString("Hello, World!", 5, 175);

     38     }

     39  }