// this software (where software means whole sources, compiled classes and
// documentation) is hereby distributed by Stefan Schumacher <stefan@net-tex.de>
// under BSD Licence
//
// Magdeburg, Germany, 2003-06-25
//
// Viel Spass am Gerät
//
// Java GUI Kram
import java.awt.*;
import java.applet.*;
import javax.swing.*;
// als Applet
public class gui extends Applet
{
private baum meinBaum = new baum();
// Eingabefeld
private TextField Textfeld;
// Buttons
private Button hinzufuegen, loescheBaum;
// TextArea
public static JTextArea textArea;
//Label
private Label label = new Label();
// Panels
private Panel oben = new Panel();
private Panel mitte = new Panel();
// zeigt die Schritte/Funktionen an, wird aus baum.java aufgerufen, daher public
public static String aktionen = new String();
// initialisiert den Grafikkram und einen Beispielbaum
// mit 1 - 10, siehe Übung 16/A79
public void init()
{
// Panels füllen
oben.add (loescheBaum = new Button("loesche Baum"));
oben.add (Textfeld = new TextField("",3));
oben.add (hinzufuegen = new Button("hinzufuegen"));
mitte.add (label = new Label("Belegaufgabe Rot-Schwarz Baum von Stefan Schumacher <stefan@net-tex.de>"));
mitte.add (textArea = new JTextArea(20,55));
setLayout(new java.awt.BorderLayout());
// Panels initiieren
add(oben, BorderLayout.NORTH);
add(mitte, BorderLayout.SOUTH);
//Baum von 1-10
meinBaum.knotenEinfuegen(1);
meinBaum.knotenEinfuegen(2);
meinBaum.knotenEinfuegen(3);
meinBaum.knotenEinfuegen(4);
meinBaum.knotenEinfuegen(5);
meinBaum.knotenEinfuegen(6);
meinBaum.knotenEinfuegen(7);
meinBaum.knotenEinfuegen(8);
meinBaum.knotenEinfuegen(9);
meinBaum.knotenEinfuegen(10);
}// init
// _
// _ __ __ _| |___ _ _
// | ' \/ _` | / -_) ' \
// |_|_|_\__,_|_\___|_||_|
public void paint(Graphics g)
{
meinBaum.maleBaum(g, getSize().width, getSize().height);
}
// _ _ _ _
// _____ _____ _ _| |_| (_)__| |_ ___ _ _ ___ _ _
// / -_) V / -_) ' \ _| | (_-< _/ -_) ' \/ -_) '_|
// \___|\_/\___|_||_\__|_|_/__/\__\___|_||_\___|_|
public boolean action(Event e, Object arg)
{
// Buttonabfrage
if (arg.toString() == "hinzufuegen")
{
// neuWert aus Testfeld saugen und casten
int neuWert = (new Integer(Textfeld.getText())).intValue();
if (neuWert > 0)
{
aktionen+="\n ";
aktionen+=neuWert;
aktionen+=" hinzufuegen ";
// Knoten einfügen
meinBaum.knotenEinfuegen(neuWert);
repaint();
textArea.setText(aktionen);
return true;
}
return true;
}
else if (arg.toString() == "loesche Baum")
{
meinBaum.loescheBaum();
// Applet neu aufziehen
repaint();
return true;
}
return false;
}//event
}// class