dh-Materialien
Java Tutorial
 

Pakete

Die bereits vorhandenen Klassen und Interfaces sind in Paketen (packages) gebündelt. Soll in einem Javaprojekt auf eine vordefinierte Klasse oder ein Interface AnyName zugegriffen werden, so kann entweder dem Java-Compiler durch eine import-Anweisung mitgeteilt werden, in welchem Paket sich AnyName befindet, oder aber AnyName wird explizit in das Projekt eingebunden:

import pname.*; // Alternative 1
import pname.AnyName; // Alternative 2

Nachfolgend sollen nur einige der Pakete kurz beschrieben werden, welche für die Projektbeispiele dieses Tutorials eine Rolle spielen:

java.lang
Die insgesamt 45 Klassen und 13 Interfaces dieses Pakets sind so elementar, dass diese in jedem Javaprojekt auch ohne import-Anweisung automatisch eingebunden werden. Es handelt sich beispielsweise um die Klasse Object (die Wurzel der gesamten Klassenhierarchie von Java), die statischen Klassen Math und System, die Wrapperklassen und deren Superklasse Number und das Interface Runnable, welches von jeder Klasse, die einen Thread beinhaltet, implementiert werden muss.

java.awt
Unter den rund 100 Klassen dieses Paket befindet sich z.B. die abstrakte Klasse Toolkit, von der jede konkrete Implementierung des Abstract Window Toolkit abgeleitet ist. Mit dem DefaultToolkit lässt sich beispielsweise ein eigenes Icon in der zu einem Fenster gehörenden Titelzeile einbinden. Weitere Klassen, die auch in den Projektbeispielen dieses Tutorials benutzt werden, sind  AlphaComposite, BasicStroke ( Javaprojekt FilledRectangle), BorderLayout, FlowLayout, GridLayout ( Javaprojekt LayoutPerformer AlphaComposite ( Javaprojekt MysteriousShapes) Color ( Javaprojekt ColoredButtons), Font und Graphics2D.

java.awt.event
Die insgesamt 18 Interfaces und 24 Klassen dieses Pakets sind dazu da, im Zusammenhang mit AWT-Komponenten eintretende Ereignisse zu registrieren, bzw. auf diese zu reagieren. Hierzu gehören beispielsweise die Interfaces ActionListener und KeyListener sowie die abstrakten Klassen MouseAdapter, KeyAdapter, WindowAdapter und die Klassen MouseEvent, KeyEvent, WindowEvent.

java.awt.geom
Dieses Paket stellt Klassen zur Verfügung, um 2-dimensionale Objekte definieren und verändern zu können, etwa Area, Ellipse2D, Line2D, Pint2D, Rectangle2D, RoundRectangle2D.

javax.swing
Die Klassen dieses Pakets werden für die Erstellung von graphischen Benutzeroberflächen (Graphical User Interfaces) benötigt, sofern diese mit Hilfe von Swing-Komponenten realisiert werden sollen ( Javaprojekt SortingAlgorithms): JFrame, JPanel, JLabel, JButton, JTextField, ...

javax.swing.event
Die Klassen bzw. Interfaces dieses Pakets stellen Methoden und Objekte zur Verfügung, die auf Ereignisse reagieren, die bei der Verwendung von Swing-Komponenten eintreten können. Beispielsweise definiert das Interface ChangeListener ein Objekt, das auf ChangeEvents, also auf Änderungen von Swing-Komponenten reagieren kann. Mit dem vom Interface EventListener abgeleiteten Interface DocumentListener hat man die Möglichkeit, Änderungen in einem Textdokument zu registrieren ( Javaprojekt TextAnalysis).

java.io
Dieses Paket stellt Klassen für Ein- und Ausgabevorgänge zur Verfügung, beispielsweise BufferedReader oder InputStreamReader. Ein Objekt vom Typ BufferedReader ist ein Eingabepuffer, der es gestattet, Eingabedaten beispielsweise von der Tastatur zeilenweise auszuwerten.

java.util
Dieses Paket enthält vor allem Klassen, die die Arbeit mit speziellen Datenstrukturen (arrays, lists, queues, deques, sets, maps) ermöglichen bzw. erleichtern, beispielsweise Collections (ein Bestandteil vom Java Collections Framework). Daneben gibt es BitSet (eine Klasse, bei der es um Vektoren geht, deren Elemente Bits sind), Random (deren Instanzen Folgen von Zufallszahlen mit einer Periode von 248 generieren können), Scanner (ein Text-Scanner, mit dem beispielsweise das Parsen von Zeichenketten möglich ist) und viele andere nützliche Dinge.