Weitere aktuelle Java-Titel finden Sie bei dpunkt.
 Inhaltsverzeichnis   Auf Ebene Zurück   Seite Zurück   Seite Vor   Auf Ebene Vor   Eine Ebene höher   Index


7.3.1

Applets


Für die Einbindung von Medien wie Sound und Grafiken in Applets sind die entsprechenden Methoden im AppletContext definiert. Es muss jedoch nicht immer über den AppletContext darauf zugegriffen werden. Methoden, die häufig benutzt werden, sind bereits in der Klasse Applet definiert und rufen intern die Methoden des zugehörigen AppletContext auf. Bei den oben beschriebenen Methoden ist der Ort der Medien absolut angegeben. Jede der obigen Methode besitzt dafür einen Parameter von Typ URL. Ein Exemplar der Klasse URL repräsentiert in Java ein Dokument im Netz. Die Klasse URL wird ausführlich in Abschnitt 13.1 erklärt.

Die Angabe der Medien kann auch relativ erfolgen. Dies ist z. B. sinnvoll, wenn Medien im selben Verzeichnis wie die HTML-Seite oder das Applet liegen. Die relative Angabe von Medien wird im Folgenden anhand eines Beispiels erläutert, in dem eine Grafik und eine Audiodatei eingebunden werden:
  import java.applet.*;
  import java.awt.*;
  
  public class SoundDemo extends Applet {
    Image picture;
    AudioClip sound;
  
    public void init() {
      // Einbinden der Medien
      sound = getAudioClip(getCodeBase(), "sounds/ping.au");
      picture = getImage(getCodeBase(), "images/turm.gif");
    }
  
    public void start() {
      sound.loop();   // Abspielen des Sounds
    }
  
    public void stop() {
      sound.stop();   // Stoppen des Sounds
    }
  
    public void paint(Graphics g) {
      g.drawImage(picture, 0, 0, this);
    }
  
  }
In init() werden die einzelnen Medien (Bild und Grafik) eingebunden. Die Angabe der URL erfolgt relativ. getCodeBase() liefert als Ergebnis die URL, die auf das Applet verweist. Soll die Angabe relativ zur HTML-Seite erfolgen, muss die Methode getDocumentBase() verwendet werden. Ansonsten gilt für die Methoden getImage() und getAudioClip() das schon oben Gesagte. In der Methode paint() wird das Bild gezeichnet.

Durch die Zeile
  sound.loop()
wird die Audiodatei in einer Endlosschleife abgespielt. Das Laden einer anderen HTML-Seite in den Browser beendet die Audio-Ausgabe im Allgemeinen nicht. Wird eine längere Audioausgabe in einem Applet vorgenommen, sollte man deshalb immer in der stop()-Methode dafür sorgen, dass sie abgebrochen wird. Macht man dies nicht, wird die Audiodatei in jedem Fall bis zum Ende abgespielt. Enthält eine Seite, die neu in den Browser geladen wird, auch eine Audioausgabe, kommen beide in Konflikt miteinander.

getAudioClip() ist somit der Methode play() in jedem Fall vorzuziehen, da play() nicht die Möglichkeit bietet, die Audioausgabe vorzeitig abzubrechen.


 Inhaltsverzeichnis   Auf Ebene Zurück   Seite Zurück   Seite Vor   Auf Ebene Vor   Eine Ebene höher   Index

Copyright © 2002 dpunkt.Verlag, Heidelberg. Alle Rechte vorbehalten.