3QuarksAppletsPictureButtonAmpel
Klicken Sie auf ein Ampellicht, um den Text auf der Tafel zu ändern.

Dieses Beispiel demonstriert die Inter-Applet-Kommunikation zwischen Applets, die auf derselben HTML-Seite liegen. Drei Buttons senden dem Applet "Blackboard" eine Nachricht und stoßen dort einen Zufallsgenerator an, der den Reim auf der Tafel neu mischt.
Und so funktioniert's
Der Einbau der Applets in eine HTML-Seite ist denkbar einfach. Die drei PictureButtons bekommen die Namen "RedButton", "YellowButton" und "GreenButton". Diese Namen werden als Attribut in das Applet-Tag geschrieben. Außerdem bekommt jeder PictureButton den Parameter "LinkApplet" mit dem Wert "Blackboard" übergeben. Wenn der Anwender nun auf einen Button klickt, dann sucht dieser auf der HTML-Seite nach einem Applet mit dem Namen "Blackboard" und sendet diesem, falls er es denn findet, eine Nachricht. Zur Identifizierung bekommt die Nachricht als Argument noch den Namen des PictureButtons.

  <applet code=PictureButton.class name=RedButton width=48 height=48>
    <param name=LinkApplet value="Blackboard">
    ...
  </applet>

  <applet code=PictureButton.class name=YellowButton width=48 height=48>
    <param name=LinkApplet value="Blackboard">
    ...
  </applet>

  <applet code=PictureButton.class name=GreenButton width=48 height=48>
    <param name=LinkApplet value="Blackboard">
    ...
  </applet>

Das Applet, das die Nachrichten der Buttons empfangen soll, bekommt den Namen "Blackboard":

  <applet code=Blackboard.class name=Blackboard width=279 height=169>
    ...
  </applet>

Es empfängt die Nachrichten in der Methode action. Dabei bekommt es den Namen des PictureButtons im Argument what übergeben. Durch einen einfachen String-Vergleich kann nun unterschieden werden, welcher Button die Nachricht gesendet hat:

  public boolean action (Event event, Object what)
    {
    // a message from the red button
    if (((String) what).equalsIgnoreCase ("RedButton"))
      {
      ...
      }

    // a message from the yellow button
    if (((String) what).equalsIgnoreCase ("YellowButton"))
      {
      ...
      }

    // a message from the green button
    if (((String) what).equalsIgnoreCase ("GreenButton"))
      {
      ...
      }

    return super.action (event, what);
    }
1. Dezember 1999