Java: Applets
Applets sind Java-Programme, die direkt in HTML-Dokumente eingebunden werden können. Beim Ausführen des HTML-Codes wird die Applet-Datei vom angegebenen Speicherort auf den Client-Computer heruntergeladen und dort ausgeführt. Bei der Programmierung sind einige Besonderheiten zu beachten.Was ist das Besondere an einem Applet?
Bisher haben wir nur Programmcode geschrieben, der vom Interpreter ohne Einbeziehung des Internet-Browsers ausgeführt wird, zum Beispiel durch Eingabe des Befehlsjava Anwendung
. Dabei sucht sich der Interpreter die main
-Funktion und führt sie aus. Alle Funktionen und Methoden werden dann von hier aus gesteuert.Applets brauchen keine
main
-Funktion. Stattdessen wird die Java .applet
-Klasse erweitert. Für die Grafik wird noch eine Grafik-Klasse eingebunden, und schon ist aus einer Java-Applikation ein Java-Applet geworden:
import java.applet.Applet;
import java.awt.Graphics;
public class Roboter extends Applet
{
public void paint(Graphics g)
{
// Kommentar: hier folgt die eigentliche Anweisung
g.drawString("Der Roboter arbeitet", 100,100 );
}
}
main
-Funktion enthalten. Dann kann man es sowohl als Applet als auch als Applikation ansprechen.
Was ein Applet kann
In einem Applet kann grundsätzlich der volle Leistungumfang der Programmersprache Java und damit der Objektorientierung genutzt werden. Das heißt, Objekte grundsätzlich aller Art können genutzt, ihre Methoden ausgeführt werden. Das gilt für das Design von Websites über Multimedia-Funktionen bis zu ganz exotischen Objekten. Man kann also eine Website mit Hilfe eines Applets dynamisch völlig neu und verschieden gestalten, je nach den Informationen, die man im Dialog vom Benutzer erfragen kann.Einiges können Applets nicht, weil sie es nicht können sollen, damit sie kein Sicherheitsrisiko darstellen: Applets können nicht auf das Dateisystem des Client-Computers zugreifen. Sie können also weder Dateien von der lokalen Festplatte des Benutzers lesen noch diese irgendwie schreiben oder verändern. Sie können auch keine Verbindung zu anderen Computern herstellen, außer zu dem Host, von dem sie geladen wurden.
Einfluß auf die WebSite
Das Werkzeug AWT
Um das Layout einer Website mitzugestalten, gibt es das Grafik-Werkzeug AWT. Es enthält die wichtigsten Methoden zur Arbeit mit einer grafischen Oberfläche. Beispiel:import java.awt.Frame;
public class Roboter
{
public static void main (String s[] )
{
Frame f = new Frame("Der Roboter arbeitet");
f.setSize(300, 100);
f.SetVisible( true );
}
}
Frame
(Fenster oder Rahmen). Die Methode SetVisible(true)
macht es sichtbar. Neben dem
Frame
-Paket für die Eigenschaften von Fenstern (Rahmen) auf grafischen Oberflächen beinhaltet AWT noch viele andere Klassen und Methoden. Wir können sie in folgende Gruppen aufteilen:
Container
Komponenten, die andere Komponenten enthalten. Mit ihrer Hilfe werden Oberflächenelemente gruppiert und die Oberfläche strukturiert. Dazu gehören vor allemFrame
(für die Fenster) und Panel
(für Bereiche innerhalb eines Fensters).
Components
Schaltflächen (Buttons
), Menübalken (MenuBar
) Markierungselemente (Checkbox
), Textfelder (Textfield
), Rollbalken (Scrollbar
) Dialogfenster (Dialog
) und andere.
Layout-Manager
Er beinhaltet spezielle Klassen, mit deren Hilfe die Anordnung und Ausrichtung der Steuerelemente auf dem Bildschirm geregelt werden kann.Canvas
Zeichnen und Anzeige von Grafiken und Bildern auf dem Bildschirm. Die entsprechende Klasse heißtCanvas
.
Event-Listener
Wie der Name schon sagt, werden hier Ereignisse verarbeitet, z.B. Mausclicks und Tastatur-Eingaben.Umgang mit AWT-Klassen
Um alle AWT-Klassen zu importieren, verwenden wir den Befehlimport java.awt.*;
Das folgende Beispiel zeigt, wie mit den AWT-Klassen Button in einem Browser-Fenster erzeugt werden können:import java.awt.*;
public class Button_Fenster extends Frame
{
// Konstruktor:
Button_Fenster (String titel)
{
super(titel); // Titel des Fensters
// Der Button wird angelegt:
Button StartButton = new Button("Start");
// Layout-Manager wählen:
setLayout(new FlowLayout());
// zum Frame hinzufügen:
add(StartButton);
}
public static void main (String[] args )
{
// das Fenster aus der Klasse erzeugen:
Button_Fenster Fenster = new Button_Fenster("Start-Button");
Fenster.pack();
// Anzeigen des Fensters:
Fenster.show();
}
}
Browserabhängiges Verhalten
Manche Methoden lassen sich nur auf einem bestimmten Browser ausführen, z.B. auf dem Netscape Communicator oder dem Microsoft Internet Explorer. Dafür ist es nützlich, zu ermitteln, welcher Browser gerade Java ausführt. Das kann man zwar nicht direkt abfragen, aber indirekt, indem man versucht, eine Aktion auszuführen, die nur der Internet Explorer kann, vorsichtshalber aber eine Fehlerbehandlung einbaut. Wenn die Aktion ausgeführt wird, ist es der Internet Explorer. Wird eine Exception geworfen, kann man den Internet-Explorer ausschließen und das Entsprechende mit Netscape probieren. Die entsprechenden Klassen sind beim IE die Klassecom.ms.applet.GenericAppletContext
und bei Netscape netscape.applet.MozillaAppletContext
.Nun kann es allerdings sein, dass Java vom Browser nur deshalb nicht ausgeführt wird, weil es deaktiviert ist. Um das auszuschließen, kann man es abfragen, natürlich nicht mit Java, aber mit der JavaScript-Funktion
javaEnabled()
. Ihr Rückgabewert kann von JavaScript ausgewertet werden:
if ( !navigator.javaEnabled() )
self.location.href = "Java_Ist_deaktiviert.html";
geöffnet. Das funktioniert natürlich nur, wenn wenigstens JavaScript aktiviert ist. Sonst sieht es schlecht aus.
Überhaupt können Java und JavaScript sich gegenseitig helfen. Netscape hat ein Verfahren entwickelt, mit dem JavaScript öffentliche Variablen und Methoden eines Java-Applets verwenden darf. Die Syntax dazu ist
document.appletname.variable
bzw. document.appletname.methode()
Umgekehrt kann ein Java-Applet Funktionen aus JavaScript aufrufen. Dazu nutzt es die Klasse
JSObject
aus dem Package netscape.javascript
, z.B. durch die Anweisung:
import netscape.javascript;
Diese Klasse ist auch im Internet Explorer verfügbar.
Du arbeitest in einer Agentur oder als Freelancer?
Dann wirf doch mal einen Blick auf unsere Software FeatValue.
Weiterlesen: ⯈ Funktionen
Über uns

Wir entwickeln Webanwendungen mit viel Leidenschaft. Unser Wissen geben wir dabei gerne weiter. Mehr über a coding project