Den Shop anlegen
  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.  
   neue Javaklasse    VideoMachine.java  
 

  public class VideoMachine extends Shop 
  {
       
    public VideoMachine()
    {
      super();
    } 

    public static void main(String[] args) 
    {
      VideoMachine vidMachine = new VideoMachine();
      setTheShop(vidMachine);
    }
  } 
        
 
  Der Konstruktor legt ein neues Objekt vom Typ VideoMachine an. Die Methode setTheShopsp apilogo in der main-Methode legt den gerade erzeugten Shopsp apilogo als den Shopsp apilogo fest, der für die Applikation zu verwenden ist. Um die Methode einsetzen zu können, muß noch das Paket salesp apilogo mit der unten stehenden Anweisung importiert werden. Es enthält die zentralen Klassen des Frameworks.  
 

  import sale.*;
        
 
  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 Logsp apilogo statisch definierten Methode setGlobalOutputStreamsp apilogo 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:  
 

  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 Logsp apilogo, FileOutputStream und IOException wird der Kopf der Klasse wie folgt erweitert:  
 

  import log.*;
  import java.io.*;
       
 
  Nun sind alle Voraussetzungen zum Starten des Shopssp apilogo erfüllt. Die main-Methode muß nur noch um folgende Zeile erweitert werden:  
 

  vidMachine.start();
        
 
  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 Shopsp apilogo 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.  
 

  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:  
 

  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.  
 Quelltexte
  Hier der Quelltext der in diesem Kapitel geänderten Klasse:  
 
vorherige Seite  Aufgabenstellung Kataloge und Bestände  naechste Seite
 

by kk15

Valid HTML 4.01!