AWT -1- Abstract Windowing Toolkit

1001_GUI_Beispiel.bmp

// mit diesem Befehl wird dem Compiler (javac) mitgeteilt, dass er bei Klassen,
// die im Soucecode aufgerufn werden und nicht im aktuellen Verzeichnis als
// JAVA-Datei vorliegen, in den Paketen
java.awt.* zu suchen hat.
import java.awt.*;

// Durch die Ableitung von der AWT-Klasse Frame wird aus einer normalen Java-Klasse
// eine Fensterklasse
public class GUI_Beispiel extends Frame
{//1
// die folgende Konstruktor-Methode legt drei Schalter an
   GUI_Beispiel(String titel)
   {//2
// der an den Konstruktor übergebene Parameter "titel" wird an den Konstruktor der Basisklasse (=die Superklasse)
// weitergegeben
   super(titel);

//  Button Instanzen erzeugen:
//  "Definiere ein neues Objekt vom Typ Button mit dem Namen Hänsel aus der Klasse Button
Button Hänsel      = new Button("
Hänsel");
Button Und         = new Button("und");
Button Gretel      = new Button("Gretel");
TextField Textfeld = new TextField("ich bin ein Textfeld");

//   einen Layout-Manager zum Anordnen der Schalter
festlegen;
//   in diesem Fall der FlowLayout-Manager, der alle Komponenten
//   der Reihe nach nebeneinander plaziert.
//   MERKE: Ein Layout-Manager bezieht sich immer auf den Container, mit dessen
//   setLayout()-Methode er eingerichtet wurde.
     setLayout(new FlowLayout());

//   alle Container (s.u) (hierzu gehören auch die Fenster) besitzen die Methode add,
//   der man einfach die Instanz der aufzunehmenden Komponenten (hier: ein Button)
//   gibt
     add(Hänsel);
     add(Und);
     add(Gretel);
     add(Textfeld);
   }//2

public static void main(String args[])
  {//3
// eine Instanz der Fensterklasse anlegen, durch Aufrufen des Konstuktors
  GUI_Beispiel Fenster = new GUI_Beispiel("Erstes GUI Programm");
// folgende Methode wäre nicht notwendig; sie bewirkt die Ausrichtung der verwendeten Komponenten
// auf ihre bevorzugte Grösse
//  alternativ:     Fenster.setSize(300, 80);
  Fenster.pack();
// Alle Aktione, die mit dem Fenster durchgeführt worden sind, sind bisher nur im Speicher
// passiertFenster auf den Bildschirm bringen

  Fenster.show();
}//3

}//1




AWT Komponenten


Element
Zweck
wichtigste ~
Zweck
Container
dienen der Grupperung der Oberflächenelemente
und der Strukurierung der Oberfläche
Frame
Fenster ohne Rahmen, der Menüleiste enthalten kann


Panel
Leerer Container ohne Rahmen; für Gruppierungen gut geeignet.
Components

Button
Schaltfläche


MenuBar
Menübalken


Menu
Pull-Down-Menüs


MenuItem
eine Menü-Schaltfläche


CeckboxMenuItem
Schaltknopf im Menu


Choice
Drop-Down-Liste


FileDialog
Datei-Auswahl


List
Liste mit auswählbaren Komponenten


Label
Einfache Textanzeige


TextArea
Textarea


Checkbox
Markierungskästchen


TextField
Textfelder


Scrollbar
vertikale und horizontale Rollbalken


Dialog
Dialogfenster; Beispiel "Dat ei löschen?"
LayoutManager
Spezielle Klassen die Anordnung und Ausrichtung
von Steuerelementen regeln.


Canvas
Grafik

leere Komponente zum Zeichnen
Event-Listener
Spezielle Klassen zur Ereignisbehandlung. Legen Reaktion von Oberflächenelementen auf Maus- und Tastaturereignisse fest.




Layout-Manager

Konstruktor
Anordnung
Hinzufügen von Komponenten durch
FlowLayout()
der Reihe nach
add(Komponente)
BorderLayout()
in 5 Gebiete: Central, North, East, West, South
add(>>East<<, Komponente)
GridLayout(n,m)
gitterartig in N x M Matrix
zeilenweise:
add(Komponente1-1)
add(Komponente1-2)
add(Komponente1-3) usw.



zweites Beispiel
 
// Zugriff auf das java.awt anmelden
import java.awt.*;
// Verarbeitung von Ereignissen
import java.awt.event.*;

// Klasse FrameMitGruß wird aus Frame beerbt: extends
// hierdurch ensteht aus einer normalen Klasse eine Fensterklasse
public class FrameMitGruß extends Frame
{//1


    public FrameMitGruß(String title)
    {//2

        super(title);
    }//2

    public void paint(Graphics g)
    {//3

// Text innerhalb des Fensters
        g.drawString("Schöne Grüße !", 100, 75);
    }//3

    public static void main(String[] args)
    {//4

// Fenstertitel
        Frame f = new FrameMitGruß("Hallo !");
        f.setSize(400,200);
        f.setVisible(true);
        f.addWindowListener(new WindowAdapter ()
          {//5

            public void windowClosing(WindowEvent e)
             {//6

                System.exit(0);
             }//6
          });
//5
    }//4
}//1