//Grundgerüst für Zeichnen der Canvas-Umgebung
//Grundkurs Informatik des Konrad-Adenauer-Gymnasiums Langenfeld
//Jahrgangsstufe 12.1
//September 1998

import java.applet.*;
import java.awt.*;

public class Canvas1 extends Applet
{

	BorderLayout blHaupt = new BorderLayout();
	Panel pnNord = new Panel();
	Panel pnWest = new Panel();
	Panel pnSüd = new Panel();
	Panel pnEins = new Panel();
    Panel pnZwei = new Panel();
	myCanvas cvZeichnung = new myCanvas(640-pnWest.size().width,480-pnNord.size().height-pnSüd.size().height);
	Label lbHeader = new Label("Gründgerüst für Zeichnen in der Canvas-Umgebung");
	Label lbCopyright = new Label("© Ralph-Erich Hildebrandt/September 1998");
	Font ftHFont = new Font("Arial",Font.BOLD,20);
	Font ftCFont = new Font("Arial",Font.PLAIN,10);
    Button btZeichnen = new Button("Zeichnen");
	Button btLöschen = new Button("Löschen");
	GridLayout glLinks = new GridLayout(5,1);

	public void init()
	{
    	resize(640, 480);
		setLayout(blHaupt);

		add("North",pnNord);
		pnNord.setBackground(Color.black);
		pnNord.add(lbHeader);
		lbHeader.setFont(ftHFont);
		lbHeader.setForeground(Color.white);

		add("West",pnWest);
		pnWest.setLayout(glLinks);
		pnWest.setBackground(Color.yellow);
		pnWest.add(pnEins);
		pnEins.add(btZeichnen);
		pnWest.add(pnZwei);
		pnZwei.add(btLöschen);

		add("South",pnSüd);
		pnSüd.setBackground(Color.black);
		pnSüd.add(lbCopyright);
		lbCopyright.setFont(ftCFont);
		lbCopyright.setForeground(Color.white);

		add("Center",cvZeichnung);
		cvZeichnung.setBackground(Color.white);
		cvZeichnung.init();


	}

	public void BtnZeichnenClick()
	{
		cvZeichnung.Zeichnen();
	}

	public void BtnLöschenClick()
	{
		cvZeichnung.Löschen();
	}


	public boolean handleEvent(Event evt)
	{
		switch(evt.id)
		{
		case Event.ACTION_EVENT:
			if (evt.target == btZeichnen)
			{
        	    BtnZeichnenClick();
                return true;
			}
			if (evt.target == btLöschen)
			{
				BtnLöschenClick();
				return true;
			}
		}
		return false;
	}

}

class myCanvas extends Canvas
{

	private int iBreite;
	private int iHöhe;
	private Image imBild;
	private Graphics grGrafik;


//Konstruktor    
	public myCanvas(int iBreite, int iHöhe)
	{
		this.iBreite=iBreite;
		this.iHöhe=iHöhe;
		resize(iBreite,iHöhe);
	}

	public void init()
	{
		imBild=createImage(iBreite,iHöhe);
		grGrafik=imBild.getGraphics();
		grGrafik.setColor(Color.white);
		grGrafik.fillRect(1,1,iBreite-2,iHöhe-2);
		grGrafik.setColor(Color.black);
		grGrafik.drawRect(0,0,iBreite-1,iHöhe-1);
	}

	public void paint(Graphics g)
	{
		g.drawImage(imBild,0,0,this);
	}

	public void update(Graphics g)
	{
		paint(g);
	}

	public void Zeichnen()
	{
		grGrafik.drawLine(1,1,iBreite-3,iHöhe-3);
		repaint();
	}

    public void Löschen()
	{
		grGrafik.setColor(Color.white);
		grGrafik.fillRect(1,1,iBreite-2,iHöhe-2);
		grGrafik.setColor(Color.black);
		repaint();
	}

}