Lektion 5: Applets Helmar Burkhart Informatik Universität Basel [email protected] Institut für Informatik Universität Basel EINFÜHRUNG IN DIE INFORMATIK II Lektion 5: Applets 5-0 Übersicht Lektion 5 • Was ist ein Applet ? • Applets in Swing • Applets unter HTML • Applet-Lebenszyklus • Applet-Programmierung • Browser und appletviewer • Beispiele Institut für Informatik Universität Basel EINFÜHRUNG IN DIE INFORMATIK II Lektion 5: Applets 5-1 Was ist ein Applet ? • Ein Applet ist eine "Mini-Anwendung", die dynamisch vom Internet geladen werden kann. • Technisch gesprochen: Applets sind mobiler Code, der erst auf Anforderung von einem Server-Rechner geladen wird und vom javafähigen Webbrowser auf der Arbeitsstation ausgeführt wird. • Anwendungen sind eigenständige Programme mit voller Funktionalität. Werden vom Betriebssystem aus aufgerufen. • Applets haben aus sicherheitstechnischen Aspekten eingeschränkte Funktionalität. Institut für Informatik Universität Basel EINFÜHRUNG IN DIE INFORMATIK II Lektion 5: Applets 5-2 Java Bytecode Die Java Virtual Machine führt den Bytecode aus. Intern wird einem Keller z.B. für Berechnungen gearbeitet. class ByteCode{ static double multiply(byte a, short b, int c, double d){ return a * b * c * d; } public static void main (String[]args){...} Die Bytecodedatei ByteCode.class kann mittels javap „lesbar“ dargestellt werden. Institut für Informatik Universität Basel EINFÜHRUNG IN DIE INFORMATIK II Lektion 5: Applets 5-3 Applets in Swing Hierarchie Component Gleiche Abstammung: Man kann die Dialogkomponenten gleichermassen laden (add)! Container Window Panel Frame Applet JFrame JApplet Institut für Informatik Universität Basel EINFÜHRUNG IN DIE INFORMATIK II Lektion 5: Applets 5-4 HTML und Applets Applets werden von einer HTML Seite aus geladen. <BODY> <APPLET CODE="class-file Name" WIDTH=breite HEIGHT= hoehe> <APPLET> Weitere Elemente: Institut für Informatik Universität Basel CODEBASE, ARCHIVE,ALT, NAME, PARAM,... EINFÜHRUNG IN DIE INFORMATIK II Lektion 5: Applets 5-5 Lebenszyklus eines Applets Der Lebenszyklus eines Applets umfasst folgende Phasen: • Erzeugen • Initialisieren: init() beim Laden der Seite • Starten start() beim Sichtbarwerden • Zeichnen paint(), update() • Stoppen stop() beim nicht Sichtbarwerden • Löschen destroy() beim nicht mehr benötigen Institut für Informatik Universität Basel EINFÜHRUNG IN DIE INFORMATIK II Lektion 5: Applets 5-6 Umwandeln in Applet Ein Anwenderprogramm, das die sicherheitsrelevanten Aspekte nicht verletzt, kann zielgerichtet umgewandelt werden: • Erstellen einer HTML-Seite mit dem Applet-Tag. • main()-Methode eliminieren, da Rahmen und Grössenangabe im HTML Teil erfolgen. • Statt von JFrame wird von JApplet ererbt. Klasse muss öffentlich sein. • setSize() , addWindowListener(), setTitle() gegebenfalls entfernen. • Der Konstruktor wird durch init() ersetzt. Institut für Informatik Universität Basel EINFÜHRUNG IN DIE INFORMATIK II Lektion 5: Applets 5-7 Taschenrechner als Applet public class CalcApplet extends JApplet implements ActionListener{ public void init(){ contentPane = getContentPane(); .... <HTML> <HEAD> <TITLE> Taschenrechner</TITLE> </HEAD> <BODY> <APPLET CODE="CalcApplet.class" WIDTH=300 HEIGHT=200> </APPLET> </BODY> </HTML> Institut für Informatik Universität Basel EINFÜHRUNG IN DIE INFORMATIK II Lektion 5: Applets 5-8 Applets und Browserabhängigkeiten • Da nicht alle Browser immer auf dem neuesten Stand der Java-Implementierung sind, kann es Probleme wie etwa bei der Verwendung von Swing geben. • appletviewer ist ein Programm, das zur SDK Umgebung gehört und mit dem entsprechende Applets getestet werden können. Institut für Informatik Universität Basel EINFÜHRUNG IN DIE INFORMATIK II Lektion 5: Applets 5-9 Applet-Beispiele Applet-Beispiele (teilweise mit Quellcode) finden sich • in der SDK Dokumentation, sowie auf dem Internet: • java.sun.com/applets/index.html • gamelan.earthweb.com/ • www.ericharshbarger.org/java/ • .... Institut für Informatik Universität Basel EINFÜHRUNG IN DIE INFORMATIK II Lektion 5: Applets 5-10 Programme Lektion 5 Java Bytecode Taschenrechner als Applet 1 Taschenrechner als Applet 2 Institut für Informatik Universität Basel EINFÜHRUNG IN DIE INFORMATIK II Lektion 5: Applets (5-3) (5-8) 5-11