9.3 JApplet Variante 1
 
Step by step In diesem Abschnitt wird gezeigt, wie man, ausgehend von einer GUI (JFrame) zu einem Applet für die Klasse Mathematik kommt. Was ist ein Applet? Applet ist en Programm das nicht mehr auf dem virtuellen Prozessor (Java-VM) läuft, sondern das von einem als plug-in in einen Browser integrierten VM abgearbeitet wird. Das hat zwei wichtige Konsequenzen. Erstens, das Applet wird von einer HTML-Seite aus gestartet. Zweitens, das Applet benötigt keine Main-Methode mehr. Das letztere kann man sich so veranschaulichen. Eine Main-Methode sorgt dafür, dass ein Programm im Speicher des Rechners fest verankert (adressiert) wird. Bei einem Applet ist das nicht mehr nötig, da die Kontrolle des Programms vom Browser übernommen wird.
 
Das Applet
1. Schritt
Wenden wir uns zunächst dem Applet zu. Wir verwenden unsere RechnerGUI (RechnerGUI.java) und nehmen die wenigen Veränderungen vor. Sie sind im nachfolgenden Quelltext gelb unterlegt. Im Anschluss werden die Veränderungen kommentiert.
 
Download:
RechnerJApplet.
java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class RechnerJApplet extends JApplet 
                            implements ActionListener {
  // Anfang Variablen
  private JPanel northPanel, centerPanel;
  private JLabel labelA, labelB, labelC;
  private JTextField eingabeFeldA, eingabeFeldB, 
                     eingabeFeldC, ausgabefeld;
  private JButton buttonFakultaet, buttonggT, 
                  buttonkgV, buttonFib, buttonQuadGl, 
                  buttonGl;
  // Ende Variablen

  public RechnerJApplet(String title) {
    // Frame-Initialisierung
    super(title);
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    setSize(450, 150);
    Container cp = getContentPane();
    cp.setLayout(new BorderLayout());

    // Anfang Komponenten
    //hier bleibt alles beim Alten!
    // Ende Komponenten

    setVisible(true);
  }

  public void actionPerformed(ActionEvent e) {

    //auch hier bleibt alles beim Alten
  }


  public static void main(String[] args) {
    new RechnerGUI("RechnerGUI");         
  }                                       
}
Kommentare Zunächst verändern wir den Namen der Klasse und damit auch den Namen der Datei auf dem Rechner zu RechnerJApplet. Diese Namensänderung dient lediglich dazu, die Übersicht zu behalten, ist also für das Funktionieren des Applets unerheblich.
  • Die Klasse erbt nicht mehr von JFrame, sondern von JApplet. Der Unterschied eines normalen Applets zu einem JAppelt liegt in der Verwendung der swing-Technologie.
  • Der Konstruktor bekommt natürlich den abgeänderten Namen und die Parameterliste wird geleert. Denn, unsere GUI läuft jetzt integriert in eine HTML-Seite und benötigt keine eigene Überschrift  mehr.
  • Konsequenterweise, muss der Aufruf eines geerbten Konstruktors wegfallen.
  • Das Beenden des Programms wird, ja darf nur vom Browser kontrolliert werden, weshalb die Zeile setDefaultCloseOperation(EXIT_ON_CLOSE);
    unbedingt gestrichen werden muss.
  • Die Größe des dargestellten Fensters wird, wie wir später noch genauer sehen werden, vom HTML-Kode der Seite, in die das Applet eingebunden ist, kontrolliert, somit entfällt auch der Aufruf der Methode setSize(..,..).
  • Aus den gleichen Gründen entfällt auch der Aufruf von setVisible(true).
  • Schliesslich ist, wie schon eingangs erwähnt die Main-Methode überflüssig, weshalb sie ebenfalls gestrichen wird.
Der HTML-Kode
2. Schritt
Im Menüpunkt Start des Javaeditors kann man durch Klicken auf 'HTML für Applet' einen HTML-Kode erzeugen, der das Applet eingebunden hat. Gleichzeitig wird der HTML-Kode in einer Datei mit dem Namen RechnerJApplet.html im aktuellen Verzeichnis abgespeichert. Dieser HTML-Kode ist sehr einfach und selbsterklärend. Die wesentlichen Zeilen sind gelb unterlegt.
 
 
<html>
<head>
<title>RechnerJApplet-Applet</title>
</head>
<body>
<h1>RechnerJApplet-Applet</h1>
<hr>
<applet code="RechnerJApplet.class" width="400" height="300">
</applet>
<hr>
</body>
</html>
  Allerdings startet diese so generierte HTML-Seite unser Applet nicht. Der Grund ist, dass es sich in unserem Falle nicht um ein Applet sondern um ein JApplet handelt.
 
HtmlCoverter
3. Schritt
Hier hilft nun das Programm HtmlConverter.exe, das bei der Installation von jdk1.5.0_02 im Unterverzeichnis bin abgelegt wird. Wir starten es.

Im ersten Eingabefeld tragen wir die HTML-Datei ein, die wir konvertieren wollen. Das Anklicken des Buttons 'Durchsuchen' erleichtert uns die Arbeit. Ist die Datei RechnerJApplet.html gefunden, klicken wir auf den Button 'Konvertieren'. Die Datei RechnerJApplet.html wird überschrieben und hat nun den folgenden Inhalt:

<html>
<head>
<title>RechnerJApplet-Applet</title>
</head>
<body>
<h1>RechnerJApplet-Applet</h1>
<hr>
<!--"CONVERTED_APPLET"-->
<!-- HTML CONVERTER -->
<object
    classid = "clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"
    codebase = "http://java.sun.com/update/
                       1.5.0/jinstall-1_5-windows-i586.cab#Version=5,0,0,9"
    WIDTH = "400" HEIGHT = "300" >
    <PARAM NAME = CODE VALUE = "RechnerJApplet.class" >
    <param name = "type" value = "application/x-java-applet;version=1.5">
    <param name = "scriptable" value = "false">

    <comment>
  <embed
            type = "application/x-java-applet;version=1.5" \
            CODE = "RechnerJApplet.class" \
            WIDTH = "400" \
            HEIGHT = "300"
      scriptable = false
      pluginspage = "http://java.sun.com/products/plugin/index.html#download">
      <noembed>
            
            </noembed>
  </embed>
    </comment>
</object>

<!--
<APPLET CODE = "RechnerJApplet.class" WIDTH = "400" HEIGHT = "300">


</APPLET>
-->
<!--"END_CONVERTED_APPLET"-->

<hr>
</body>
</html>
zum JApplet Die Datei kann man im Javaeditor öffnen. Wie man erkennen kann, ist der alte Kode. auskommentiert, am Ende der Datei eingefügt. Wir verändern noch

            WIDTH = "450" \
            HEIGHT =
"150"

und speichern die Datei erneut ab. Schließlich starten wir das JApplet indem wir die eben erzeugte Datei in einem Browser öffnen.
 

zu 9.4 JApplet Variante 2
zur Startseite www.pohlig.de  (C) MPohlig 2005