Applets Programmieren mit Java Einführung in Applets Yana Norina Applets Einführung Yana Norina Geschichte Applets und Applikationen Was ist ein Applets? Die wichtigsten Methoden Applets Programmierung Beispiele Fazit 2 Geschichte Java- Applets waren Ende der 1990er Jahre ein Hauptgrund für den Erfolg und die schnelle Verbreitung von Java. (...) Applets gibt es schon seit Java 1.0. Leider auf diesem Level auch stehen geblieben(liegt an Microsoft) Applets können nicht auf allen System laufen Yana Norina 3 Applets und Applikationen: Unterschiede Applikationen eigenständige Programme Die zu Ausführung den Stand –Alone –Java Interpreter benötigen Applets aus HTML-Seiten heraus aufgerufen sein können Ausführung eines Web Browser benötigen aus Sicherheitsgründen darf nicht auf Dateien des Rechners zugegriffen werden. Yana Norina 4 Applet Applikationen Hauptprogramm stets aus der Klasse Applet abgeleitet Hauptprogramm Gleichgültig woraus die abgeleitet wird. Starten: Web-Browser die Applet Klasse instanziiert und die Methoden init() und start()aufruft Starten: Von Java-Interpreter Klassenmethode main() aufgerufen wird GraphicModus und Ereignisorientiert Yana Norina Alle Ein-/Ausgaben Textorientiert 5 Was ist ein Applet? Applets sind kleine Java-Programme, die in einem Webbrowser ablaufen. Man benötigt dafür eine HTML-Datei, in die das Applet eingebunden wird. Der Applet-Viewer befindet sich im gleichen Verzeichnis des JDK(Java Development Kit),wie die Java selbst. Zusätzliche Möglichkeiten in Benutzer-schnittstellenDesigns z.B. Ausgaben von Sounds. Yana Norina 6 Was ist ein Applet? Ist ein rechteckiges Bildschirm Elements, dass eine Größe und Position hat kann Ereignisse empfangen kann Graphische Ausgaben vornehmen Deklaration eines einfaches Applets durch: Import java.applet.Applet; Import java.awt.*; Beispiel_1 Yana Norina 7 Was ist ein Applet? Hauptprogramm eines Applets sind Ableitungen von java.applte.Applet Der wiederum von java.awt.Container Container : dient dazu Steuerelemente zu Fenstern oder Dialogen zusammenzufassen. erlaubt ein Layout zu definieren, (analog zu swing) Yana Norina 8 Vererbung Component Container Panel Applet Window Dialog Frame java.lang.Object java.awt.Component java.awt.Container java.applet.Applet Yana Norina 9 Klasse java.applet.Applet Kommunikation zwischen Applet und seinem Browser läuft auf verschiedenen Ebenen ab: bevor ein Applet aktiv werden kann, muss der Browser ein Objekt der abgeleitete Applet-Klasse instanziieren: Instanziieren Initialisieren starten stoppen zerstören. Yana Norina 10 Applet-Instanz Nach dem Applet-Instanz erzeugt worden ist: Public Applet(). Import java.applet.Appllet; üblicherweise von Applet geerbt: Public void init()….. Public void start()… Public void stop()… Public void destroy()… Die aus dem Applet abgeleitete Klasse, sorgt dafür diese Methoden zu überlagern und mit erforderlichen Funktionalität auszustatten. Yana Norina 11 Applets Lebenszyklus eines Applets init(): start(): Startet des Applets kann mehrfach erfolgen stop(): Wird zu Initialisierung genau 1x aufgerufen Stoppt des Applets kann mehrfach erfolgen destroy(): Yana Norina Vorbereitung für das Zerstören 1x aufgerufen Beispiel_2 12 Applets Innerhalb von Methoden kann man : init(): init (): Member Variablen initialisiert Images oder Fonts geladen Parameter ausgewertet werden start(): start (): kann z.B. eine Animation starten stop(): kann z.B. eine Animation anhalten destroy(): destroy (): kann z.B. einen Thread (Programfaden) „zerstören“ Yana Norina 13 Applets Die wichtigsten Methoden Auf der Konsole sieht es so aus Yana Norina 14 Fazit public void init() Die Methode init() wird als erstes gestartet und während des Lebensdauer eines Applets genau einmal von Browser und Appletviewer aufgerufen. Sie informiert das Applet, dass es in System geladen wurde, und zwar alles, was beim Starten vorhanden sein muss. z.B.: Parameter, Bilder, Musikdaten, graphische Objekte (Checkboxen, Buttons usw.). Voraussetzung, dass die Methode ausgeführt werden kann, ist, dass das Applet zur Zeit nichts ausführt. Yana Norina 15 Fazit public void start() Wird immer vom Browser und Appletviewer aufgerufen, wenn die Web-Page, die das Applet enthält, sichtbar wird. Teilt dem Applet dass es starten soll. Beim ersten Mal nach der Ausführung der init()Methode und später jedesmal, wenn der User in diese Web-Page zurückkehrt, wenn die Internet-Seite wieder besucht wird. Yana Norina 16 Fazit public void stop() Wird stets vom Browser und Appletviewer aufgerufen, wenn der User die Web-Page verlässt, wenn er auf eine andere Web-Page geht oder wenn der Browser geschlossen wird. Teilt dem Applet mit, dass es anhalten soll (d.h. die Ausführungen beenden) Voraussetzung, dass das Applet gerade nichts macht. Yana Norina 17 Fazit public void destroy() wird nach der stop-Methode vom Browser oder vom Appletviewer aufgerufen, wenn der Browser geschlossen wird bzw. wenn die Seite verlassen wird. informiert, dass es "zurückgefordert" wurde und dass es alle Ressourcen (Speicher) freigeben ("zerstören") soll. Sie wird als letztes, bzw. nach der Methode stop() aufgerufen. Voraussetzung ist, dass das Applet zur Zeit nichts ausführt. Yana Norina 18 Wichtigen Methoden public void paint paint(Graphics (Graphics g): Zeichen Methode für Anzeigefunktionen oder Graphische Objekte des Applet Duch den Aufruf von paint() fordert das Applet auf, sich auf dem Bildschirm darzustellen. Wird Aufgerufen : wenn das Browserfenster verdeckt war und dann wieder neu gezeichnet werden muss. Beispiel_3 Yana Norina 19 Graphische Elemente Graphik -Instanz Methode paint() drawRect()//von e.Pixel Maßen Darstellt drawOval()drawLine() usw. fiilOval() Mit Hilfe setColor(Color.Name); this.setBackground(Color.Name); Yana Norina 20 Das Einbinden eines Applets Ein Applet-Tag wird wie ein normaler Text in die Browser-Ausgabe eingebunden: Mit <APPLET> eingeleitet und durch </APPLET> beendet Platzreservierung durch Belegung <WIDTH> und <HEIGTH> Die Größe und Anordnung des Applets: WIDTH und HEIGTH CODE der wichtigste Parameter PARAM gibt den Namen der Applets Klasse an. zur Parameterübergabe Yana Norina 21 CODE zu Beachten Der Klassenname sollte inklusive der Extension .class angegeben werden. Groß- und Kleinschreibung müssen eingehalten werden. Die Klassendatei muss im aktuellen bzw. angegebenen Verzeichnis zu finden sein. Yana Norina 22 Das Einbinden eines Applets CODE Verzeichnis, in dem die ".class"Dateien gesucht werden (beliebige URL<Uniform Resource Identifiern >) ALIGN HSPACE VSPACE Ausrichtung des Fensters (z.B. left oder rigth) Rand rechts und links vom Applet Rand über und unter dem Applet Beispiel_4 Yana Norina 23 Bilder Laden GetImage(): Bekommt URL und den Namen des Bildes, die uns Image-Instanz zurück gibt. image = getImage(this.getCodeBase(), "bild1.jpg"); Methode drawImage()der Graphic-Instanz innerhalb von pait(), dies ausgeben: g.drawImage(image, 20, 20, io); Beispiel_5 Yana Norina 24 CODEBASE Verzeichnis in dem sich das Applet befindet. Der Syntax entspricht dabei der normalen HTMLVerzeichnis-Definition. Ein Register, auf das Applet externe Ressource erwartet Wichtig: Es müssen, die Angaben auf das Host (ein Computer, der in Internet Datenbanken zu Verfügung stellt) verwiesen , von dem das Applet geladen worden ist. Beispiel_7 Yana Norina 25 HTML <APPLET>: CODE notwendig WIDTH notwendig HEIGHT notwendig -Dateiname -Breite & -Weite : Sind Notwendig <PARAM>: NAME VALUE notwendig notwendig Ein Applet wird in eine HTML-Datei mit <Applet> und </Applet> angebunden. Wenn ein Parameterwert übergeben wird wird mit <PARAM> definiert: Yana Norina 26 Parameter Übergabe Jedes <PAPAM> besitzt: des Parameter notwendig value (Geltung) des Parameter notwendig name Zum Beispiel: <param name="redwidth" value=10> <param name="url" value="http://tutego.com/index.html"> Beispiel_9 Yana Norina 27 Parameter Übergabe Das Applet nimmt den Parameter an Und prüft den Gültigen Aufbau der URL über eine MalformedURLException . Yana Norina 28 public String getParameter(String name) Gibt den Wert(value) des genannten Parameters in HTML-Tag zurück. Z.B.: < param name =color value=“blue“> Parameterwerte sind als String eingelesen, auch wenn eine Zahl eingegeben wurde. Parameter: Rückgabe: Yana Norina name - der Parametername Wert des Parameters 29 showDocument erlaubt das Laden eines anderen HTMLDokumentes. Eine andere Webseite zu laden. Steht in zwei unterschiedlichen Varianten zu verfügung public void showDocument(URL url) public void showDocument(URL url, String name) Ersetzt Yana Norina der Inhalt der Seite durch eine neue Seite 30 Die Klasse URL URL(Uniform Ressource Locator) Universelles Hilfsmittel von Internetadressen, der beim Aufrufen des Links angesprungen wird: Um eine Webseite aufzurufen Eine Datei zu laden Elektronische Post zu senden Beispiel_5/ 6/ 7 Yana Norina 31 Elemente des Benutzer-Interface Buttons(java.awt.Button) Labels(java.awt.Label) Textfelder: (java.awt.TextField) (java.awt.TextArea) List(java.awt.List) Beispiel_8 Yana Norina 32 Buttons(java.awt.Button) Button Klasse erzeugt eine Schaltfläche, mit einen Hinweistext: die ein User anklicken kann Per Tastendrück Einen Befehl ausführen kann Wird ein Action-Event geworfen, das ActionListener -Instanzen behandelt werden kann Yana Norina 33 (java.awt.TextField)&(java.awt.TextAria) Eingaben von Texten innerhalb eines Applets: (java.awt.TextField) einzeilige Eingabe (java.awt.TextAria) mehrzeilige Eingabe Beispiel_8 Yana Norina 34 Fazit Kleine Programms die innerhalb von: Applet-Viewer oder Applet Browser angezeigt werden Über Netzwerke verteilt Applets sind nicht gleich Applets ein lokal geladenen Applet (darf alle lokale Applikationen) ein über Netzwerk geladenen Applet.. aus Sicherheitsgründen darf nur wenige Dinge: Yana Norina 35 Was ein Applet darf: Keine Dateien von lokalen Rechner öffnen kein Programm starten lesen ändern speichern Dateien auf die per URL-Instanz zugegriffen worden ist, können dagegen geöffnet und gelesen werden Yana Norina 36 Was ein Applet darf: Keine anderen Libraries (eigene Packages) nachladen. Lediglich die Bibliotheken des java.*; Keine Netzwerkverbindungen aufbauen Ausnahme: Netzverbindungen zu dem Host, von dem das Applet geladen worden ist. Darf nur bestimmte System-Properties auslesen Yana Norina 37 Applets Werden statt einer main() Funktion gestartet, sondern müssen aus einer der Klasse Applet abgeleitet werden.. Zum Starten des Programms erzeugt der Browser eine Instanz der abgeleiteten Klasse und ruft automatische nacheinander eine Reihe vordefinierter CallbackMethoden auf . Callback-Methoden sind Methoden, die von der abgeleiteten Klasse zur Verfügung gestellt und vom Browser oder AppletViewer aufgerufen werden. Beispiel_10 Yana Norina 38 Applet über den Browser Eine HTML-Seite anlegen und in dieser ein Applet-Tag einfügen !!Wichtig: Applet Klasse und HTML-Dateien liegen in der Regel im gleichen Verzeichnis Nachteil: Browser Cache Java-Applets, die Kopien zwischen speichern..d.h..nach jedem Kompilieren löschen müssen Lösung: Applet-Viewer Yana Norina 39 Applet per Applet-Viewer Es ist ein kleines Kommandozeilen-Tool. Aufruf gestaltet sich einfach durch: Appletviewer <URL> Der Platzhalter <URL> ist dabei durch den URL zur HTML-Datei, die das <Applet>-Tag deklariert, zu ersetzen. URL kann auf das lokale Datensystem oder eine Ressource im Internet verweisen. Yana Norina 40 Applets Quellen http://service.phil-fak.uni-desseldorf.de/tutorial/java http://wiki.zum.de/Java/Applet „Einführung in Java“ / Skript / Pernards/Klinker „Java ist auch ein Insel“ / C. Ullenboom „Handbuch der Java-Programmierung“ / G. Krüger „Java 6 Einstieg für Anspruchsvolle „ / K. Samaschke Yana Norina 41