3
Das Abstract Window Toolkit
Dieser Abschnitt erklärt die verschiedenen Elemente der grafischen Benutzeroberfläche, also die meisten Klassen des Abstract Window Toolkit (AWT), anhand einer Folge von sehr primitiven Applikationen. Die Klassen befinden sich alle im Paket java.awt
.
Alle Applikationen verwenden den gleichen Rahmen, mit dem man untersuchen kann, welche Events von einem bestimmten Element erzeugt werden. Wie man mit den Events dann zweckmäßig umgeht, erklärt der folgende Abschnitt
. Die Event-Verarbeitung wurde für JDK Version 1.1 drastisch geändert -- hier wird nur das neue Verfahren berücksichtigt. Leider stellt man auch hier noch immer Ungereimtheiten und Differenzen zwischen den Plattformen fest.
[
Applet] Über derartige Verweise können die Applikationen in einem Java-fähigen Browser auch als Applets aufgerufen werden; dabei kann die Darstellung der Events gefiltert werden. Offenbar unterstützen nur hotjava und der appletviewer die neue Event-Verarbeitung korrekt; netscape 4.04 kann die Seiten auch nach Einspielen der Java-Korrektur awt.jar nicht darstellen. Suns Java Activator 1.1 (early access 2) kann die Seiten ebenfalls nicht darstellen.
Eine Oberfläche besteht aus verschiedenen grafischen Component-Objekten
, die mit Container-Objekten
in einer Hierarchie zusammengefaßt werden. Die geometrische Anordnung im Container kontrolliert ein LayoutManager-Objekt
. In diesem Abschnitt werden nur die einfacheren Versionen eingeführt -- BorderLayout
und GridLayout
; mit dem allgemeinen Konzept und den komplizierteren Beispielen -- CardLayout
und GridBagLayout
-- befaßt sich der übernächste Abschnitt
.
Das Abstract Window Toolkit besteht aus mehreren Paketen: java.awt
enthält vor allem die grafischen Objekte, java.awt.datatransfer
beschäftigt sich mit Drag&Drop, java.awt.event
beschreibt die neue Event-Verarbeitung und java.awt.image
enthält Hilfsklassen zum Umgang mit Bitmap-Grafiken. java.awt.peer
definiert die Interfaces, die das AWT mit einer konkreten Grafikplatform wie Windows oder Motif verbinden. Folgende Klassen werden in diesem Abschnitt verwendet:
ActionEvent, ActionListener awt.event
Adjustable
AdjustmentEvent, AdjustmentListener awt.event
AWTEvent
BorderLayout
Button
Canvas
Checkbox, CheckboxGroup
CheckboxMenuItem
Choice
Color
Dialog
FileDialog
FocusAdapter, FocusEvent awt.event
Font
Frame
Graphics
GridLayout
Image
ImageObserver, ImageProducer awt.image
ItemEvent, ItemListener awt.event
KeyEvent awt.event
Label
List
Menu, MenuBar, MenuItem
MouseAdapter, MouseEvent awt.event
MouseMotionAdapter awt.event
Panel
PopupMenu
ScrollPane
Scrollbar
TextArea
TextField
Das LoaderApplet und manche Aspekte von Listener sind Beispiele für die Applet-Klasse
und verwenden den AppletContext; beide sind im Paket java.applet
definiert.