Advanced   Java   Services
Parameter aus der HTML-Datei übernehmen
Back Next Up Home

Ü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

Hier das Applet, das sich noch nicht versteckt


Hier das Applet, das sich versteckt
 
 
 
 

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>
&nbsp;<br>
&nbsp;<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>
&nbsp;<br>
&nbsp;<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)

Hier das Applet, das sich verstecken will und bei dem ein Fehler auftritt
 
 
 
 

top Back Next Up Home