Dieses Kapitel gibt eine Einführung in die Java-Programmierung. Mit Hilfe eines größeren Beispiels werden wichtige Spracheigenschaften erklärt und der Umgang mit den Werkzeugen des JDK und der Klassenbibliothek gezeigt. Dabei wurde bewußt ein etwas komplexeres Programm gewählt, das nicht mit der vollen Detailgenauigkeit erläutert wird. Die behandelten Themen werden an anderer Stelle im Buch wiederholt, und wir werden jeweils genau erklären, in welchem Kapitel weiterführende Informationen zu finden sind. Zunächst mag das Programm als Aperitif dienen und einen kleinen Vorgeschmack auf die Möglichkeiten von Java und die kommenden Kapitel geben.
Als Beispielprogramm wurde ein Applet gewählt, das ein Schiebepuzzle realisiert (siehe Abbildung 2.1).
Abbildung 2.1: Das unsortierte Schiebepuzzle
Das Applet ist in der Lage, ein beliebiges Bild, das im gif- oder jpeg-Format vorliegt, zu laden, in 16 Spielsteine zu zerlegen und auf dem Bildschirm anzuzeigen. Eines der Spielfelder bleibt dabei unbesetzt und dient als Lücke, um die anderen Steine verschieben zu können. Ziel des Spiels ist es, die 15 Steine so zu ordnen, daß das ursprüngliche Bild wieder entsteht (siehe Abbildung 2.2). Das Verschieben der Steine erfolgt per Drag & Drop, indem ein benachbarter Stein mit der Maus in die vorhandene Lücke gezogen wird. Zusätzlich kann durch einen Klick auf den Rahmen das Spielfeld sortiert oder vermischt werden. Weitere Bedienelemente besitzt das Programm nicht.
Abbildung 2.2: Das sortierte Schiebepuzzle
Bevor wir in die Details der Programmierung einsteigen, soll zunächst das JDK installiert werden. Alle Beispiele in diesem Buch wurden mit Hilfe der Version 1.1.2 des JDK entwickelt und getestet. Es befindet sich auf der beigefügten CD-ROM oder kann über das Internet vom JavaSoft-Server geladen werden. Bis zum Erscheinen des Buchs werden wohl weitere Bugfix-Releases erschienen sein, die anstelle der Version 1.1.2 verwendet werden können. Die kürzlich erschienene Version 1.1.3, die einige Fehler behebt, wurde in diesem Buch noch nicht verwendet.