// Diesmal werden mehr vordefinierte Komponenten verwendet.
// Daher wird vorsichtshalber alles eingebunden. Der Stern *
// steht dabei als Joker für alle jeweils existierenden
// Komponenten.
import java.awt.*;
import java.awt.event.*;
import java.applet.Applet;



// Dieses Applet zeichnet die Benutzeroberflaeche eines
// Taschenrechners, der noch keinerlei Funktionalitaet hat.
public class Taschenrechner extends Applet
{

    // Hier schreiben wir das Ergebnis rein.
    TextField output;

    public void init()
    {
	// Wir waehlen eine Schriftart, die auf dem Papier noch 
	// lesbar ist.
	setFont(new Font("Dialog",Font.BOLD,12));

	// Zunächst werden die Elemente der GUI initialisiert.

	// Wir ordnen den Taschenrechner in einem BorderLayout an.
	// Dabei wird zwischen den Bereichen NORTH, CENTER und 
	// SOUTH ein Abstand eingefuegt.
	setLayout(new BorderLayout(0,25));
	
	// Die Ausgabe soll oben erscheinen.
	output = new TextField("0.");
	output.setEditable(false);
	add(output, BorderLayout.NORTH);

	// Im Center wird der Ziffer-Tasten-Block stehen.
	// Dafür wird ein neues Panel mit GridLayout benötigt.
	Panel numberBlock = new Panel();
	add(numberBlock, BorderLayout.CENTER);
	numberBlock.setLayout(new GridLayout(4,4,5,5));
	numberBlock.add(new Button("7"));
	numberBlock.add(new Button("8"));
	numberBlock.add(new Button("9"));
	numberBlock.add(new Button("/"));
	numberBlock.add(new Button("4"));
	numberBlock.add(new Button("5"));
	numberBlock.add(new Button("6"));
	numberBlock.add(new Button("*"));
	numberBlock.add(new Button("1"));
	numberBlock.add(new Button("2"));
	numberBlock.add(new Button("3"));
	numberBlock.add(new Button("-"));
	numberBlock.add(new Button("0"));
	numberBlock.add(new Button("."));
	numberBlock.add(new Button("+/-"));
	numberBlock.add(new Button("+"));
	
	// In der Fußzeile sollen nun Lösch- und Eingabe-Tasten 
	// stehen.
	// Die Eingabe-Taste ("=") soll aber doppelt so lang sein, 
	// deshalb schachteln wir die Fußzeile weiter
	
	// Dies ist das Panel der Fußzeile
	Panel bottomPanel = new Panel();
	// Das Panel wird in unser BorderLayout unten eingefügt.
	add(bottomPanel,BorderLayout.SOUTH);
	// Um den Platz dieses Panels zu halbieren, legen wir ein
	// GridLayout mit einer Zeile und zwei Spalten an.
	bottomPanel.setLayout(new GridLayout(1,2,5,5));
	
	// In die linke Seite des bottomPanel's sollen zwei 
	// Lösch-Tasten.
	// Damit auch diese gleich groß sind, wird wieder ein 
	// Panel mit GridLayout gebraucht.
	Panel clearPanel= new Panel();
	// Das Panel in das bottomPanel einfügen.
	bottomPanel.add(clearPanel);
	// dem clearPanel sein Layout verpassen.
	clearPanel.setLayout(new GridLayout(1,2,5,5));
	// Hier kommen die beiden Lösch-Tasten.
	clearPanel.add(new Button("AC"));
	clearPanel.add(new Button("CE/C"));
	
	// Nun fehlt nur noch die Eingabe-Taste in der rechten
	// Hälfte des bottomPanel's
	bottomPanel.add(new Button("="));
    }

}

