Advanced
Java
Services
|
Parameter aus der HTML-Datei übernehmen |
Über eine einfache Ergänzung zum AppletTag lassen sich Daten aus der HTML-Datei in das Applet übertragen.
Alle Daten werden in Form von Strings übergeben und müssen vom Applet entsprechend interpretiert werden.
In der HTMl-Datei werden param-Tags ergänzt
<applet code="MyApplet.class" width=400 height=300>
<param name="parameterName1" value="parameterWert1">
<param name="parameterName2" value="parameterWert2">
<param name="parameterName3" value="parameterWert3">
</applet>
Die Reihenfolge der param-tags spielt keine Rolle, wichtig ist jedoch eine eindeutige Namensgebung, denn
mit Hilfe der Namen liest das Applet die Werte aus. Das folgende kleine Applet versteckt sich vor dem
Betrachter, indem es die Farbe des HTML-Hintergrunds annimmt. Erst wenn man mit der Maus auf die
Appletfläche kommt, ändert die AppletFläche ihre Farbe. Der Applet-Tag in der HTML-Datei sieht
folgendermaßen aus.
<applet code="GetParameterDemo.class" width=400 height=300>
<param name="red" value="220">
<param name="green" value="230">
<param name="blue" value="240">
</applet>
Das Applet in der einfachsten Fassung ohne irgendwelche Fehlerprüfungen und noch ohne
Mausunterstützung kann so aussehen:
import java.awt.* ;
import java.applet.* ;
public class GetParameterDemo extends Applet
{
Label label = new Label();
public void init()
{
setLayout( new BorderLayout() );
label.setBackground( getHTMLBackgroundColor() );
add(label);
}
private Color getHTMLBackgroundColor()
{
int red = Integer.parseInt( getParameter("red") ) ;
int green = Integer.parseInt( getParameter("green") ) ;
int blue = Integer.parseInt( getParameter("blue") ) ;
return new Color(red, green, blue);
}
} // end class
|
Und so sieht unser Quellcode jetzt aus:
import java.awt.* ;
import java.applet.* ;
import java.awt.event.* ;
public class GetParameterDemo2 extends Applet
{
Label label = new Label("", Label.CENTER);
public void init()
{
setLayout( new BorderLayout() );
label.setBackground( getHTMLBackgroundColor() );
label.addMouseListener( new MouseHandler() );
add(label);
}
private Color getHTMLBackgroundColor()
{
int red = Integer.parseInt( getParameter("red"), 16 ) ;
int green = Integer.parseInt( getParameter("green"), 16 ) ;
int blue = Integer.parseInt( getParameter("blue"), 16 ) ;
return new Color(red, green, blue);
}
class MouseHandler extends MouseAdapter
{
private Color bg ;
public void mouseEntered(MouseEvent e)
{
bg = label.getBackground();
label.setBackground( new Color(255,150,150) ) ;
label.setText("gefunden");
}
public void mouseExited(MouseEvent e)
{
label.setBackground(bg);
label.setText("");
}
}
} // end class
Und so wurde das Applet in diese HTML-Datei eingebettet:
<table bgcolor="#efdfcf" width=85%>
<tr><td>
<br>
<br>
<applet code="GetParameterDemo2.class" width=100 height=50 align=right>
<param name="red" value="ef">
<param name="green" value="df">
<param name="blue" value="cf">
</applet>
<br>
<br>
<td><tr>
<table>
Was noch fehlt, ist eine Fehlerbehandlung. Folgende Fehler sind u.a. möglich :
Ein Parameter könnte fehlen (Schreibfehler in name)
Der Wert kann nicht als Hexzahl interpretiert werden
Der Wert kann zwar als Hexzahl interpretiert werden, aber sie ist größer als ff (was wieder durch
einen Schreibfehler passieren kann, fff statt ff)
|