|
|
|
|
|
Nachdem die leeren Klassen angelegt wurden, sollen sie sinnvoll mit
Code gefüllt werden. Begonnen wird mit der zentralen Klasse
VideoMachine . Zuerst werden der Konstruktor
und der Code zum Starten hinzugefügt.
|
|
|
 |  |  |
 |
public class VideoMachine extends Shop
{
public VideoMachine()
{
super();
}
public static void main(String[] args)
{
VideoMachine vidMachine = new VideoMachine();
setTheShop(vidMachine);
}
}
|  |
 |  |  |
|
Konstruktor und main-Methode
|
|
Der Konstruktor legt ein neues Objekt vom Typ VideoMachine
an. Die Methode setTheShop in der
main -Methode legt den gerade erzeugten
Shop als den Shop fest, der
für die Applikation zu verwenden ist. Um die Methode einsetzen zu
können, muß noch das Paket sale mit der
unten stehenden Anweisung importiert werden. Es enthält die
zentralen Klassen des Frameworks.
|
|
|
|
|
|
Zur grundlegenden Funktionalität eines Shops gehört das
Protokollieren wichtiger Aktivitäten. Die dafür notwendigen
Funktionen stellt das Framework zur Verfügung. Dazu muß
mittels der in Log statisch definierten Methode
setGlobalOutputStream ein Datenstrom angegeben
werden, auf den die Logdaten vom Framework geschrieben werden
können. Als Datenstrom bietet sich ein
FileOutputStream an, der
alle Daten in eine Datei schreibt. Die folgende Anweisung legt die
Datei machine.log als Logdatei fest:
|
Log
|
|
 |  |  |
 |
try {
Log.setGlobalOutputStream(new FileOutputStream("machine.log",true));
}
catch (IOException ioex) {
System.err.println("Unable to create log file.");
}
|  |
 |  |  |
|
|
|
Dieser Code wird in die main -Methode eingefügt. Die
Anweisung muß in einen try -Block geschrieben werden,
da bei einem Fehler eine IOException erzeugt wird, die
in einem catch -Block verarbeitet werden muß.
Außerdem
müssen noch die notwendigen import -Anweisungen
ergänzt werden. Für die Verwendung der Klassen
Log , FileOutputStream und
IOException wird der Kopf der Klasse wie
folgt erweitert:
|
|
|
 |  |  |
 |
import log.*;
import java.io.*;
|  |
 |  |  |
|
|
|
Nun sind alle Voraussetzungen zum Starten des
Shops erfüllt. Die main -Methode
muß nur noch um folgende Zeile erweitert werden:
|
Starten des Shops
|
|
|
|
|
Wird das Programm kompiliert und ausgeführt, öffnet sich
ein Fenster, das die Menüs "Shop" und
"MultiWindow" enthält.
Dort werden Menüpunkte zur Verfügung gestellt, die bereits
im Framework implementiert wurden und somit funktionsfähig sind.
Im Shop ist es bereits möglich, einen
vorher abgespeicherten Videoautomaten zu laden bzw. den aktuellen Zustand
abzuspeichern. Beim Beenden des Programms wird vom Framework
automatisch ein Dialog zum Speichern geöffnet.
Um das zu vermeiden (schließlich kann man mit Hilfe des
Menüs schon speichern) wird in der Klasse VideoMachine
die Methode quit implementiert.
|
Menüleiste
|
|
 |  |  |
 |
public void quit()
{
if (Shop.getTheShop().shutdown(false)) {
System.exit(0);
}
}
|  |
 |  |  |
|
|
|
Im "MultiWindow"-Menü stehen Funktionen
zur Verfügung, die das Aussehen des Fensters steuern. Es kann
zwischen einer Karteikartenansicht und einer Ansicht mit mehreren kleinen
Fenstern innerhalb des Shop-Fensters umgeschalten werden.
|
|
|
Dem Fenster können außerdem noch ein Titel und eine
Größe zugewiesen werden. Der Methodenaufruf
vidMachine.start() wird durch folgenden Code ersetzt:
|
Formatierung des Fensters
|
|
 |  |  |
 |
vidMachine.setShopFrameTitle("Videoverleihautomat *** HOMECINEMA *** 24h");
vidMachine.start();
vidMachine.getShopFrame().setSize(640,480);
vidMachine.getShopFrame().validate();
|  |
 |  |  |
|
|
|
Durch die Methode validate wird das Layout aller im Fenster
dargestellten Elemente aktualisiert und der neuen Größe
angepasst.
|
|
|
|
Hier der Quelltext der in diesem Kapitel geänderten Klasse:
|
|
|
|
|