Java-Applets auf HTML-Seiten |
|
Applets werden immer von der Klasse Applet abgeleitet. Die Datei muss daher die benötigten Importe enthalten. Applets werden kompiliert:
javac startApplet.javaund in einer HTML-Seiten Aufgerufen mit dem Tag <Applet Code = startApplet.class></Applet>
Der HTML-Browser interpretiert den Java Byte-Code, der vom javac-Compiler erzeugt wird. Daher sind Java- Applets plattformunabhängig.
Folgende Methoden können in Applets vorkommen und werden, falls vorhanden, automatisch aufgerufen:
Das folgende Beispiel demonstriert die start() und stop() Methoden. Das Applet zeigt an, wie oft es seit seinem ersten Aufruf aktualisiert worden ist: Quell-Code
Die HTML-Seite kann an das Applet beim Aufruf Werte übergeben mit dem Parameter-Tag:
Das Applet braucht dann einen Mechanismus um die Parameter zu übernehmen:
Beispiel:Das gelbe Applet zeigt die Parameter, die von der HTML-Seite übergeben werden
So können Applets geschrieben werden, die in ihrem Ablauf flexibel gesteuert werden können.
Ein Applet kann Konstruktoren anderer Klassen aufrufen. Das folgende FahrApplet zur Fahrzeug Simulation benutzt die Klasse Fahrzeug
Das Applet erzeugt in init() Fahrzeug Objekte und schickt diesem dann Nachrichten, die das Fahrzeug-Objekt versteht und ausführt. Das Applet übernimmt dann ggf. die Anzeige der Werte, die vom Fahrzeug-Objekt geliefert werden.
Das gelbe Applet ist eine Fahrzeug-Simulation,
import java.applet.*;
import java.awt.*;
public class startApplet extends Applet
{
static int anzahlAktualisierungen = 0;
TextField T = new TextField("", 7 );
startApplet()
{
add(T);
T.setEditable(false);
}
public void init()
{
setBackground( new Color( 200, 190, 150 ));
T.setFont( new Font( "Arial", 0, 24));
}
public void start()
{
T.setText( anzahlAktualisierungen +"");
}
public void stop()
{
anzahlAktualisierungen++;
}
}
import java.applet.*;
import java.awt.*;
public class ParameterDemo extends Applet{
String Text1, Text2;
public void paint(Graphics g){
setBackground(Color.yellow);
Text1 = getParameter("Parameter1");
Text2 = getParameter("Parameter2");
g.drawString("Der Wert von Parameter1 ist " + Text1, 10, 40);
g.drawString("Der Wert von Parameter2 ist " + Text2, 10, 70);
}
}
import java.applet.*;
import java.awt.*;
public class FahrApplet extends Applet
{
Panel BedienElement = new Panel();
String str;
Label TempoAnzeige = new Label(" 0");
Dimension Groesse;
Fahrzeug F = new Fahrzeug();
public void init()
{
BedienElement.add( new Button("Beschleunigen"));
BedienElement.add( new Button("Bremsen"));
BedienElement.add( new Button("Anhalten"));
BedienElement.add(TempoAnzeige);
add(BedienElement);
Groesse = size();
}
public boolean action( Event e, Object arg )
{
if("Beschleunigen".equals( arg)){
F.Beschleunigen();
TempoAnzeige.setText(F.Tacho()+"");
}
else if("Bremsen".equals( arg))
TempoAnzeige.setText("?????" );
else if("Anhalten".equals( arg))
TempoAnzeige.setText("!!!!!");
repaint();
return true;
}
public void paint( Graphics g )
{
g.drawRect(0, 0, Groesse.width- 2, Groesse.height-2);
setBackground(Color.yellow);
}
}