DemoFigur.java

import java.awt.*;
import javax.swing.*;

public class DemoFigur extends JPanel {
  // Zeichenfläche (JPanel) mit einer einfachen Demo-Figur
    
  private Figur[] figur;  // Liste aller zu malenden Figuren

  // Konstruktor
  public DemoFigur() {
    // erzeuge Liste aus Standard-Figuren
    figur = new Figur[7];

    // Gesicht
    figur[0] = new Kreis(new Punkt(150.0, 175.0), 125.0);

    // Nase
    figur[1] = new Dreieck(new Punkt(5.0, 0.0), 
                           new Punkt(0.0, 20.0), new Punkt(10.0, 20.0));
    figur[1].scale(3.0);
    figur[1].move(new Punkt(135.0, 150.0));

    // Hut
    figur[2] = new Quadrat(50.0, 0.0, new Punkt(125.0, 0.0));

    // Augen
    figur[3] = new Kreis(new Punkt(95.0, 132.5), 12.5);
    figur[4] = new Kreis(new Punkt(205.0, 132.5), 12.5);

    // Hutkrempe
    figur[5] = new Linie(new Punkt(30.0, 50.0), new Punkt(270.0, 50.0));  

    // Mund
    Punkt[] p = {new Punkt(), new Punkt(5.0, 10.0), 
                 new Punkt(25.0, 10.0), new Punkt(30.0, 0.0)};
    figur[6] = new Polygon(p);
    figur[6].scale(2.0);
    figur[6].move(new Punkt(120.0, 240.0));

    // weißen Hintergrund
    setBackground(Color.white);    // geerbt von JPanel
  }

  public void paintComponent(Graphics g) {
    // male den Hintergrund (erledigt die Mutter JPanel)
    super.paintComponent(g); 
    
    // zeichne alle Figuren
    for (int i = 0; i < figur.length; i++) {
      figur[i].draw(g);
    }
  }
}