Applets Java für’s Web Datenverkehr im www HTTP-Server Internet Client = Browser Siehe S. 32-33, 323 Datenverkehr im www CSS Bilder HTML HTTP-Server [statisch] Internet Client = Browser Siehe S. 32-33, 323 Datenverkehr im www CSS Bilder HTML HTTP-Server ASP JSP [statisch] Internet Perl Client = Browser JavaScript Flash [dynamisch] PHP Java-Applets Siehe S. 32-33, 323 Was sind Applets? – Ein Beispiel import java.awt.*; import java.applet.*; Applets sind GUI-Container, also muss java.awt.* (oder javax.swing.*) importiert werden. Siehe S. 39-47, 326-330 Was sind Applets? – Ein Beispiel import java.awt.*; import java.applet.*; Die Hauptklasse wird von Applet (oder JApplet) im package java.applet (javax.swing) abgeleitet. Siehe S. 39-47, 326-330 Was sind Applets? – Ein Beispiel public class CShades extends Applet { } Die Hauptklasse des Applets muss public sein. Siehe S. 39-47, 326-330 Was sind Applets? – Ein Beispiel public class CShades extends Applet { public void paint (Graphics g) { for (int i=0; i<=255;i++) { g.setColor(new Color (i,i,i)); g.drawLine (0,i,255,i); } … } } Es gibt keine main()-Methode, sondern z.B. eine paint()-Methode. Diese muss public sein. Siehe S. 39-47, 326-330 Was sind Applets? – Ein Beispiel public class CShades extends Applet { public void paint (Graphics g) { for (int i=0; i<=255;i++) { g.setColor(new Color (i,i,i)); g.drawLine (0,i,255,i); } for (int i=0; i<=255;i++) { g.setColor(new Color (i,i,i)); g.fillOval(i/2,i/2,255-i,255-i); } } } malen nach Zahlen … Siehe S. 39-47, 326-330 Die Einbindung in HTML <html> <head><title>Jli Java Trainer</title></head> <body> <h1>Applet-Test</h1> <applet code="CShades.class" width="256" _ height="256"></applet> </body> </html> Das <applet>-Tag bindet das Programm auf der Webseite ein. Die Größe des Panels wird im HTMLCode festgelegt. Siehe S. 39-47, 331-333 Der Lebenszyklus eines Applets Ein Applet hat keine main()-Methode, sondern fünf spezielle Methoden, die überschrieben werden können. Siehe S. 326-330 Der Lebenszyklus eines Applets init() init() wird aufgerufen, wenn der Browser das Applet geladen hat. Siehe S. 326-330 Der Lebenszyklus eines Applets init() start() start() wird aufgerufen, wenn der Browser das Applet startet. Siehe S. 326-330 Der Lebenszyklus eines Applets init() start() paint() paint() zeichnet das Applet, entweder nach dem Start oder beim Verändern des Fensters. Siehe S. 326-330 Der Lebenszyklus eines Applets init() start() paint() stop() stop() wird ausgeführt, wenn das Applet nicht mehr angezeigt wird. Siehe S. 326-330 Der Lebenszyklus eines Applets init() start() paint() stop() destroy() destroy() wird ausgeführt, wenn das Applet endgültig entfernt wird, und erlaubt „Aufräumarbeiten“. Siehe S. 326-330 Parameter-Übergabe Ein Applet sollte – um universell einsetzbar zu sein – mit unterschiedlichen Werte arbeiten können. Siehe S. 334-335 Parameter-Übergabe <html> … <applet code="CDiagramm.class" width="120" height="135"> <param name="ja" value="87"> </applet> Im HTML-Dokument wird der Wert im <param>-Tag übergeben. Siehe S. 334-335 Parameter-Übergabe import java.awt.*; import java.applet.*; public class CDiagramm extends Applet { int ja,nein; … Die Werte zur Aufnahme der zu verarbeitenden Werte werden deklariert. Siehe S. 334-335 Parameter-Übergabe public void init () { String Parameter = getParameter("ja"); ja=Integer.valueOf(Parameter).intValue(); nein=100-ja; } In der init()-Methode liefert getParameter() den Wert des Parameters mit dem Bezeichner ja. Siehe S. 334-335 Parameter-Übergabe public void init () { String Parameter = getParameter("ja"); ja=Integer.valueOf(Parameter).intValue(); nein=100-ja; } Werte werden stets als String übergeben und müssen eventuell umgewandelt werden. Siehe S. 334-335 Parameter-Übergabe public void paint (Graphics g) { g.setColor(Color.green); g.fillRect(20,110-ja,10,ja); g.drawString("Ja: "+ja+"%",5,125); g.setColor(Color.red); g.fillRect(70,110-nein,10,nein); g.drawString("Nein: "+nein+"%",55,125); } In den anderen Methoden stehen die Werte nun zur Verfügung. Siehe S. 334-335 Möglichkeiten und Beschränkungen - Sandkastenprinzip – aus Sicherheitsgründen eingeschränkte Mächtigkeit von Java - Kompatibilitäts- und Versionsprobleme (wie immer im Web) + schier ungeahnte Möglichkeiten zur Gestaltung von Webseiten, v.a. grafisch + Anwendungen innerhalb eines Browsers möglich Siehe S. 324-326, 344-345 Zum Weiterlesen Verwandte Themen und vertiefende Abschnitte jar-Dateien packen – S. 343-344 Animationen in Applets – S. 363-368 Sound in Applets – S. 374-376 Bilder in Applets – S. 373-375