Java Reference
In-Depth Information
.2 Zweites Beispiel
Im diesem Abschnitt soll nun eine zweite Applet-Komponente entwickelt werden, welche
die erste Applet-Komponente benutzt, wobei sich beide Applets auf derselben HTML-Seite
befi nden sollen. Das zweite Applet soll lediglich einen Button mit der Beschri ung „Zurück-
setzen“ enthalten, mit dem der Zähler der ersten Applet-Komponente zurückgesetzt werden
kann. Die Methode reset ist für diesen Zweck in der Klasse Counter (s. Listing 11.1) schon
vorhanden. Die Problematik liegt nun darin, sich im zweiten Applet eine Referenz auf das
Counter-Objekt im ersten Applet zu verschaff en. Die Java-Ausführungsumgebung des Brow-
sers, welche das Komponenten-Framework für unsere Applets darstellt, bietet eine Lösung
für diese Problemstellung an: Man kann sich über die ererbte Methode getAppletContext
ein AppletContext-Objekt beschaff en. Das AppletContext-Objekt hat eine Methode getApplet,
mit der man eine Referenz auf ein anderes Applet beschaff en kann. Als Parameter muss
man den Namen des Applets, dessen Referenz man haben möchte, angeben. Doch welchen
Namen hat unser erstes Applet? Bisher noch keinen, aber durch das Attribut name im
<applet>-Tag können wir diesen Namen deklarativ setzen. In der folgenden HTML-Seite
wird der Name des ersten Applets auf „Applet1“ gesetzt. Hat man eine Referenz auf das
MainClass1-Objekt der ersten Applet-Komponente, kann man sich davon eine Referenz auf
das Counter-Objekt besorgen. Die Klasse MainClass1 enthält für diesen Zweck bereits die
Methode getCounter (s. Listing 11.2). Damit sollte der Programmcode des zweiten Applets
in Listing 11.3, das nur aus einer einzigen Klasse namens MainClass2 besteht, verständlich
sein.
Listing 11.3 Klasse MainClass2
package javacomp.applets.applet2;
import java.awt.event.*;
import javacomp.applets.applet1.*;
import javax.swing.*;
public class MainClass2 extends JApplet implements ActionListener
{
private Counter counter;
public void init()
{
JButton b = new JButton("Zurücksetzen");
b.addActionListener(this);
add(b);
MainClass1 otherApplet =
(MainClass1)getAppletContext().getApplet("Applet1");
counter = otherApplet.getCounter();
}
public void actionPerformed(ActionEvent e)
{
if(counter != null)
{
counter.reset();
 
Search WWH ::




Custom Search