Neben Klassen, die es ermöglichen, Felder und Methoden zu gruppieren, existieren in Java die sogenannten Packages. Mit Hilfe dieser Packages ist es möglich, verwandte Klassen zu gruppieren. Klassen aus solchen Packages lassen sich durch einen von Modula-2 abgeleiteten import-Befehl durch andere Klassen benutzen. Der import-Befehle ist damit mit einem #include-Statement bei C oder C++ vergleichbar.
Die Java-Packages
In Java gibt es sechs (sehr umfangreiche) Packages, die standardmäßig zum JDK gehören:
. java.lang: Dieses Package beinhaltet wesentliche Java-Klassen. Dieses Package wird implizit in jede Java-Datei importiert. So muß ein "import java.lang.*" nicht in einer Java-Datei deklariert werden.
. java.io: Dieses Package enthält Klassen, die für die Datenein- bzw. ausgabe benutzt werden können.
. java.util: Enthält Utility-Klassen wie Hashtables, Vektoren, Zufallszahlen, Datum usw.
. java.net: Enthält Klassen für die Netzwerkverbindung. Diese Klassen können zusammen mit den Klassen aus dem java.io-Package benutzt werden, um Daten aus dem Netzwerk zu lesen oder in das Netzwerk zu schreiben.
. java.awt: Mit diesem Package lassen sich plattformunabhängige GUI-Applikationen schreiben. Es sei hier ausdrücklich darauf hingewiesen, daß speziell dieses Package Java für die Programmierung im Internet interessant macht. Mit diesem Package erreicht man einen Interaktivitätsgrad, der mit herkömmlicher CGI-Programmierung undenkbar wäre.
. java.applet: Enthält Klassen für die Java-Applet-Programmierung. Diese Applets können dann in jedem Java-kompatiblen Web-Browser ablaufen.
Das Package "java.awt"
Das Abstract Window Toolkit (AWT) ist ein GUI-Toolkit, das plattformübergreifend arbeitet. Es beinhaltet natürlich nicht alle Features, die die unterschiedlichen Betriebssysteme bieten, sondern hat eine allgemeine Reihe von Merkmalen, die von den meisten Plattformen unterstützt werden. Es ist eben so, daß man sich bei plattformunabhängiger Programmierung nun mal auf den kleinsten gemeinsamen Nenner einigen muß. Dabei werden die Methoden so weit als möglich auf die darunterliegenden plattformspezifischen GUI-APIs abgebildet.
Da das AWT wohl das wichtigste Package für zukünftige Java-Applikationen und besonders Java-Applets darstellt, sollen dessen Aufbau und Möglichkeiten kurz dargestellt werden.
Zusätzlich sei gesagt, daß das AWT natürlich erweiterbar ist, wobei man dann auch sicher sein kann, daß diese Erweiterungen ebenfalls plattformübergreifend arbeiten.
Die folgende Abbildung zeigt nun die wichtigsten AWT-Klassen in ihrer Hierarchie:
Abbildung : Die wichtigsten AWT-Klassen
. Component: Das ist die Basisklasse vieler AWT-Klassen. Der Hauptzweck dieser Klasse besteht darin, etwas mitsamt seiner Lage und Größe auf dem Bildschirm darzustellen.
. Container: Das ist die Basisklasse aller Komponenten. Sie selbst kann andere Klassen enthalten. Zu dieser Klasse gehört ein Hilfsobjekt: ein Layout-Manager, der die Komponenten im Container nach bestimmten Grundsätzen ordnet.
. Window: Ein Hauptfenster ohne Rahmen.
. Frame: Ein Hauptfenster mit Rahmen. Diese Klasse ist meist mit einem "MenuBar"-Objekt verbunden.
. Dialog: Ein Hauptfenster, zum Erstellen von Dialogen. Dieses Fenster kann modal oder nicht modal sein.
. FileDialog: Dialog zur Dateiauswahl.
. Panel: Dies ist eine von der Container-Klasse abgeleitete Klasse, die in anderen Containern benutzt werden kann. Dadurch können komplizierte Layouts erstellt werden.
. Button: Ein GUI-Aktionsknopf wie etwa "Abbruch".
. Canvas: Dies ist eine allgemeine Komponente, die es erlaubt, Eingabebefehle des Benutzers zu zeichnen oder abzufangen.
. Checkbox: Ein Feld mit Boolean-Charakter. Dieses Feld kann man setzen oder löschen.
. Label: Ausgabe einer Zeichenkette an einer bestimmten Stelle.
. List: Scollbare Liste von Zeichenketten.
. Scrollbar: Rollbalken, mit denen scrollbare Canvases erstellt werden können.
. TextArea: Einfache Texteditierung.
. Textfield: Textkomponente mit nur einer Zeile zur Erstellung von Formularen.
Dies ist natürlich nur ein kleiner Anriß der Möglichkeiten, die das AWT bietet.
|