Grundlagen der Programmierung APPLETS Inhalt dieser Einheit Java-Applets: • Java-Applets – Vor- und Nachteile – Sicherheitskonzepte – Methoden – Einbetten in HTML • Graphical User Interface Grundlagen der Programmierung – Applets © Guth, Kaukal, Klimesch 2000-2002 2 Java Applets • Applets laufen im Web-Browser. • Vorteile: – Keine Installation – Sicherheit durch beschränkte Zugriffsrechte, etc. • Nachteile – Komplizierte Zugriffsregelungen – längere Ladezeiten (alle Klassen müssen über das Netz geladen werden). • Java-Klasse Applet bzw. JApplet (aus dem Paket javax.swing) >> siehe Java API Grundlagen der Programmierung – Applets © Guth, Kaukal, Klimesch 2000-2002 3 Sicherheitskonzept ‚Sandbox‘ (Java 1.0) Java Applikation Java Applet Java Virtual Machine Sandbox Betriebssystem Grundlagen der Programmierung – Applets © Guth, Kaukal, Klimesch 2000-2002 4 Sicherheitskonzept Java 1.1 Java Applikation Java Applet Java Applet (signiert) (unsigniert) Java Virtual Machine Sandbox Betriebssystem Grundlagen der Programmierung – Applets © Guth, Kaukal, Klimesch 2000-2002 5 Sicherheitskonzept Java 1.2 Applet oder lokale Applikation Java Policy Permissions A Permissions B Permissions C Sandbox Java Virtual Machine Betriebssystem Grundlagen der Programmierung – Applets © Guth, Kaukal, Klimesch 2000-2002 6 Applets - Besonderheiten • Ausführung von Applets – in einem Java-fähigen Web-Browser – Appletviewer (appletviewer HelloApplet.java) • Applets brauchen keine Main-Methode • Alle Klassen eines Applets werden meist in ein Archiv gepackt. Grundlagen der Programmierung – Applets © Guth, Kaukal, Klimesch 2000-2002 7 Appletaufruf • Der Appletaufruf muss in eine HTML-Seite eingebettet sein. • Je nach Browser sieht der HTML-Code für den Appletaufruf anders aus. • Applets können lokal aufgerufen werden. • Der Pfad des Class-Files (des Applets) muss sich im CLASSPATH oder aktuellen Verzeichnis befinden. Oft befindet es sich an der selben Stelle, wie die aufrufende HTMLSeite. Grundlagen der Programmierung – Applets © Guth, Kaukal, Klimesch 2000-2002 8 Appletaufruf 2 Java Applets müssen in HTML-Code eingebettet werden. <HTML><HEAD><TITLE> A Simple Program</TITLE> </HEAD><BODY> Here is the output of my program: <APPLET CODE="HelloWorld.class" WIDTH=150 HEIGHT=25></APPLET> </BODY></HTML> siehe auch http://java.sun.com/openstudio/guide.html Grundlagen der Programmierung – Applets © Guth, Kaukal, Klimesch 2000-2002 9 Methoden der Klasse JApplet • init() Wird automatisch zur Initialisierung des Applet aufgerufen. Diese Methode wird immer überschrieben. • start () Wird aufgerufen, sobald das Applet im Browser sichtbar wird, um alle normalen Operationen zu starten. • stop() Wird aufgerufen, sobald das Applet im Browser nicht mehr sichtbar ist, um alle Operationen einzustellen und Rechenleistung zu sparen. • destroy() Gibt nicht mehr benötigte Ressourcen frei, wenn das Applet nicht mehr verwendet wird. Grundlagen der Programmierung – Applets © Guth, Kaukal, Klimesch 2000-2002 10 Java Applets Das erste Applet (HelloApplet.java): import javax.swing.*; public class HelloApplet extends JApplet{ public void init() { getContentPane().add( new JLabel("Mein erstes Applet!")); } } Grundlagen der Programmierung – Applets © Guth, Kaukal, Klimesch 2000-2002 11 Graphik-Programmierung • GUI: Graphical User Interface – Buttons – Check-Boxes – Radio-Buttons – Menü – ... • java.awt (abstract window toolkit) • javax.swing • Im Folgenden mit Java Applets gezeigt Grundlagen der Programmierung – Applets © Guth, Kaukal, Klimesch 2000-2002 12 Graphische Elemente • Basis-Elemente: (Components) – – – – – – Buttons Liste Textfelder Labels Text ... • Container verwalten mehrere Elemente – Dialog, Frame, Applet – ToolBar, Panel, ScrollPane Grundlagen der Programmierung – Applets © Guth, Kaukal, Klimesch 2000-2002 13 Swing-Klassen • • • • • • JButton JLabel JTextField JCheckBox etc. div. Methoden zur Manipulation: – setBackGround(Color) – setFont(Font) – setSize(int, int) Grundlagen der Programmierung – Applets © Guth, Kaukal, Klimesch 2000-2002 14 Verwaltung der Komponenten • Die Klassen JApplet, JFrame, JWindow und JDialog, erben u.a. von der Klasse Container. Instanzen dieser Klassen können in einer Container-Variablen verschiedene graphische Elemente (z.B.: Menüs, Buttons, etc.) verwalten. Container cp = getContentPane(); • Hinzufügen von Komponenten: cp.add(newElement); Grundlagen der Programmierung – Applets © Guth, Kaukal, Klimesch 2000-2002 15 Neue Komponenten • Labels als Instanzen der Klassen JLabel: JLabel labelInfo = new JLabel(“Text"); cp.add(labelInfo); oder cp.add(new JLabel(“Text")); • Buttons als Instanzen der Klassen JButton: JButton buttonOK = new JButton("OK"); cp.add(buttonOK); oder cp.add(new JButton("Cancel")); Grundlagen der Programmierung – Applets © Guth, Kaukal, Klimesch 2000-2002 16 Das Event Modell • Alle Komponenten können ein Ereignis der Klassen ActionEvent, AdjustmentEvent, ... auslösen (z.B. Klick, Enter, Scrollen, etc.). • Es wird von “Listener” der Klassen ActionListener, AdjustmentListener, ... empfangen, die dann entsprechend darauf reagieren können. Vgl. [Ecke00, 723f.] Grundlagen der Programmierung – Applets © Guth, Kaukal, Klimesch 2000-2002 17