/*
Datei............: Aufg1416.java
Projekt..........: Einführung in die Java-Programmierung
Erstellt.........: 26.11.97, Guido Krüger
Geändert.........: --
Aufgabe..........: Musterlösung zu Aufgabe 14.16
Kommentare.......:

Die gewünschte Ausgabe kann in drei Schritten erstellt werden:

- Zunächst wird das gesamte Fenster mit Buchstaben gefüllt. 
- Anschließend wird in der Mitte des Fensters ein Rechteck
  in Hintergrundfarbe gezeichnet.
- Nun wird ein noch kleineres Rechteck in der Mitte des
  Bildschirm als Clipping-Region deklariert und noch einmal
  das gesamte Fenster mit Buchstaben gefüllt. Durch das
  Clipping erstreckt sich diese Operation nur auf das kleine
  Rechteck in der Mitte und der graue rahmen bleibt frei.
*/
import java.awt.*;
import java.awt.event.*;

public class Aufg1416
extends Frame
{
  public static void main(String[] args)
  {
	Aufg1416 wnd = new Aufg1416();
	wnd.setSize(300, 185);
	wnd.setVisible(true);
  }

  public Aufg1416()
  {
	super("Aufg1416");
	addWindowListener(
      new WindowAdapter() {
	    public void windowClosing(WindowEvent event) {
		  System.exit(0);
		}
	  }
	);
	setBackground(Color.lightGray);
  }

  public void paint(Graphics g)
  {
	//Fenster komplett beschriften
	for (int y = 0; y <= getSize().height; y += 10) {
	  g.drawString("abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvw", 1, y);
	}
	//Grauen Kasten zeichnen
	g.setColor(Color.lightGray);
	g.fillRect(55, 50, 200, 100);
	//Fenster noch einmal, aber diesmal nur in der Clipping-Region, beschriften
	g.setColor(Color.black);
	g.setClip(86, 80, 134, 40);
	for (int y = 0; y <= getSize().height; y += 10) {
	  g.drawString("abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvw", 1, y);
	}
  }

}


