Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Vorwort
1 Java ist auch eine Sprache
2 Sprachbeschreibung
3 Klassen und Objekte
4 Der Umgang mit Zeichenketten
5 Mathematisches
6 Eigene Klassen schreiben
7 Angewandte Objektorientierung
8 Exceptions
9 Generics, innere Klassen
10 Die Klassenbibliothek
11 Threads und nebenläufige Programmierung
12 Datenstrukturen und Algorithmen
13 Raum und Zeit
14 Dateien und Datenströme
15 Die eXtensible Markup Language (XML)
16 Grafische Oberflächen mit Swing
17 Grafikprogrammierung
18 Netzwerkprogrammierung
19 Verteilte Programmierung mit RMI und Web–Services
20 JavaServer Pages und Servlets
21 Applets
22 Midlets und die Java ME
23 Datenbankmanagement mit JDBC
24 Reflection und Annotationen
25 Logging und Monitoring
26 Sicherheitskonzepte
27 Java Native Interface (JNI)
28 Dienstprogramme für die Java-Umgebung
Stichwort
Download: - ZIP, ca. 14,1 MB
Buch bestellen
Ihre Meinung?
<< zurück | Galileo Computing / <openbook> / Java-Insel | vor >>
Java ist auch eine Insel (8. Auflage) von Christian Ullenboom Programmieren mit der Java Standard Edition Version 6
Java ist auch eine Insel (8. Aufl.) 8., aktual. Auflage, geb., mit DVD 1.475 S., 49,90 Euro Galileo Computing ISBN 978-3-8362-1371-4 |
| 21 Applets
|  | 21.1 Applets in der Wiege von Java
|  |  | 21.1.1 (J)Applet und Applikationen
|  |  | 21.1.2 Das erste Hallo-Applet
|  |  | 21.1.3 HTML Converter
|  |  | 21.1.4 Fehler in Applets finden
|  | 21.2 Die Applet-API
|  |  | 21.2.1 Die Zyklen eines Applets
|  |  | 21.2.2 Parameter an das Applet übergeben
|  |  | 21.2.3 Wie das Applet den Browser-Inhalt ändern kann
|  |  | 21.2.4 Den Ursprung des Applets erfragen
|  |  | 21.2.5 Datenaustausch zwischen Applets
|  |  | 21.2.6 Was ein Applet alles darf
|  |  | 21.2.7 Ist Java im Browser aktiviert?
|  |  | 21.2.8 Applet unter Netscape oder Microsoft Internet Explorer?
|  | 21.3 Webstart
Mode ist, was man selbst trägt. Altmodisch ist, was die anderen tragen. – Oscar Wilde # 21 Applets ## 21.1 Applets in der Wiege von Java Applets sind kleine Java-Programme, die in einem Webbrowser ablaufen. Sie gehören zu den Java-Programmen der ersten Stunde. Obwohl Applets Java an die Spitze der Programmiersprachen brachten, sind sie heute nur noch selten zu sehen. Es gibt zwar Ausnahmen, wie den Routenplaner http://map24.de/, doch im Allgemeinen sind in öffentlichen Webseiten Applets weitestgehend verschwunden. Der Grund, warum Java-Applets weniger attraktiv für den Konsumenten sind, liegt nicht darin, dass die clientseitige Darstellung und Logik unwichtig geworden ist, sondern vielmehr an anderen Gründen: Mit HTML, CSS sowie JavaScript lassen sich heutzutage viele Aufgaben lösen, die 1995 unlösbar waren. Dagegen wirken compilierte Java-Programme wie Raketentechnik. Während bei Java-Applets erst eine JVM gestartet werden muss, was natürlich eine gewisse Zeit kostet, sind JavaScript und HTML sofort bereit. Starke JavaScript-Bibliotheken ermöglichen tolle Effekte und schnelle Verarbeitung und mit performanten JavaScript-Interpreten wie V 8 Und TraceMonkey eine schnelle Verarbeitung. Ist Java installiert, steht auf den Rechnern eine moderne und schnelle Java-Laufzeitumgebung für Applets über ein Browser-Plugin zur Verfügung. Möchte der Anwender Applets nutzen, aber kein JVM ist installiert, ist der Bezug langwierig, und viele Megabyte Daten müssen vom Sun-Server geladen werden. Sun arbeitet aktuell an einem System, mit dem nur relevante Bibliotheken bezogen werden, doch die Umsetzung ist noch Zukunftsmusik. (Microsoft lieferte für Windows XP immerhin noch eine eigene JVM aus, obwohl sie auf dem Stand von Java 1.1 stehen blieb. Wegen immer wieder aufkehrender Sicherheitsprobleme sollten Anwender Microsofts Java VM jedoch deinstallieren. Microsoft liefert für Vista kein Java mit aus und empfiehlt daher, Suns JVM zu installieren. [http://windowshelp.microsoft.com/Windows/en-US/Help/59c3a93d-1342-43a6-a01a-f720c7a17ffc1033.mspx] ) Java ist als allgemeine Programmiersprache entworfen worden, aber nicht als einfache Programmiersprache für grafische Effekte. Hier liegt der Vorteil von Adobe Flash. Mit starken Tools können Designer großartige Oberflächen entwerfen, und die Verbreitung des Flash-Players ist phänomenal [http://www.adobe.com/products/player_census/flashplayer/version_penetration.html] . Zudem erweitert Adobe die Multimedia-Technologie Flash, die Programmiersprache ActionScript sowie die Produktpalette zur Entwicklung kontinuierlich. Möglicherweise ändert sich das, wenn Java-Laufzeitumgebungen stark verbreitet sind und sich Suns neue Programmiersprache JavaFX (http://java.sun.com/javafx/) verbreitet hat.
Hinweis Wir wollen im Folgenden davon ausgehen, dass nicht die Java-Laufzeitumgebung 1.1 von Microsoft installiert ist, sondern ein vollwärtiges Java von Sun. Ist Suns Version von Java installiert, ersetzt es die JVM von Microsoft, und aktuelle Java-Programme lassen sich ausführen.
### 21.1.1 (J)Applet und Applikationen Bisher haben wir mit Applikationen gearbeitet, die auf der Kommandoebene oder vom Fenstersystem gestartet werden und über unmittelbaren Zugriff auf die Rechnerressourcen verfügen. Von der Programmseite aus gesehen, verfügt eine Applikation über eine main()-Funktion. Bei Applets ist das anders. Sie erweitern stattdessen die Klasse javax.swing.JApplet oder java.applet.Applet und implementieren Callback-Methoden statt einer main()-Funktion. (Hybride Software, die sowohl Applikation als auch Applet ist, ist möglich. Diese Sorte Programm erweitert einfach die Klasse (J)Applet und implementiert die main()-Funktion.) Ein Applet unterliegt hohen Sicherheitsbestimmungen – eine auf dem Client-Rechner liegende Datei kann zum Beispiel nicht gelöscht werden, und schon der lesende Zugriff ist unzulässig. Vom Sicherheitsstandpunkt aus betrachtet, kontrolliert der SecurityManager die Handlungen der Software. ### 21.1.2 Das erste Hallo-Applet Ein Programm wird leicht zu einem Applet, wenn es die Klasse Applet erweitert. Als Einstieg soll ein kleines Beispiel-Applet dienen. Listing 21.1 HelloWorldApplet.java
    import java.applet.Applet;
    import java.awt.Graphics;

    public class HelloWorldApplet extends Applet
    {
      /* @Override */ public void paint( Graphics g )
      {
        g.drawString( "Hallo Welt!", 50, 25 );
      }
    }
Die beiden ersten import-Anweisungen binden die notwendigen Informationen über Applets und über Zeichenmethoden ein. Das HelloWorldApplet erweitert die Klasse Applet, denn so wird ein Applet erzeugt. Eine main()-Funktion kommt nicht vor, und es muss eine Methode paint() überschrieben werden, die den Bildschirmaufbau übernimmt. [Das gilt nicht für JApplet. Dort ist das Überschreiben von paint() oder paintComponent() unüblich, da im Allgemeinen eine eigene sich zeichnende Komponente auf das JApplet gesetzt wird.] Der Webbrowser oder Applet-Viewer ruft diese Methode per Callback auf. Hier klicken, um das Bild zu vergrößern Damit der Viewer weiß, was zu machen ist, gibt der HTML-Code einen Hinweis auf die Klasse, die in die Seite eingebettet wird. Dies wird über ein spezielles Tag erreicht. Listing 21.2 index.html
    <html><body>
    <applet code="HelloWorldApplet.class" width="200" height="100"></applet>
    </body></html>
Neben dem Namen der Klasse übermittelt das Applet-Tag der virtuellen Maschine auch die Maße des Fensters, in dem das Applet zeichnen kann. Ab Java 1.1 lassen sich auch gepackte Dateien im Jar-Format übermitteln. Die Angabe der Klasse in der Code-Anweisung sollte keine Leerzeichen beinhalten, da dies dem Communicator und dem Applet-Viewer Probleme bereitet. Die Endung .class ist nicht in jedem Browser erforderlich, wird aber empfohlen. Hier klicken, um das Bild zu vergrößern ### 21.1.3 HTML Converter Stößt der Browser auf ein <applet>-Tag, so startet er die Java-Laufzeitumgebung, die das Java-Programm ausführt. Problematisch ist nur, wenn für den Browser kein Java (oder die falsche Version) installiert ist und der Browser keine Ahnung hat, war er mit dem <applet>-Tag anfangen soll. Die Lösung ist, auf das <applet>-Tag zu verzichten und eine browserspezifische Alternative zu verwenden, um dem Benutzer zur Installation einer richtigen JVM zu verhelfen. Der HTML-Code dafür ist recht kryptisch, sodass Sun ein Tool vorsieht, welches das <applet>-Tag ersetzt. Das Hilfsprogramm heißt HTML Converter und befindet sich im bin-Verzeichnis vom JDK. Nach dem Start öffnet sich eine grafische Oberfläche, mit der die HTML-Datei oder ein Ordner mit Applet-referenzierenden HTML-Dateien angegeben wird. Hier klicken, um das Bild zu vergrößern Abbildung 21.1 Der HTML Converter Aus dem bedächtigen
    <html><body>
    <applet code="HelloWorldApplet.class" width="200" height="100"></applet>
    </body></html>
erzeugt der Generator anschließend (wenn die Schablonendatei »Erweitert« angegeben ist):
    <html><body>
    <!--"CONVERTED_APPLET"-->
    <!-- HTML CONVERTER -->
    <script language="JavaScript" type="text/javascript"><!--
        var _info = navigator.userAgent;
        var _ns = false;
        var _ns6 = false;
        var _ie = (_info.indexOf("MSIE") > 0 && _info.indexOf("Win") > 0 &&
          _info.indexOf("Windows 3.1") < 0);
    //--></script>
        <comment>
            <script language="JavaScript" type="text/javascript"><!--
            var _ns = (navigator.appName.indexOf("Netscape") >= 0 &&
            ((_info.indexOf("Win") > 0 && _info.indexOf("Win16") < 0 &&
            java.lang.System.getProperty("os.version").indexOf("3.5") < 0) ||
            (_info.indexOf("Sun") > 0) || (_info.indexOf("Linux") > 0) || (_
            info.indexOf("AIX") > 0) || (_info.indexOf("OS/2") > 0) ||
            (_info.indexOf("IRIX") > 0)));
            var _ns6 = ((_ns == true) && (_info.indexOf("Mozilla/5") >= 0));
    //--></script>
        </comment>

    <script language="JavaScript" type="text/javascript"><!--
        if (_ie == true) document.writeln('<object classid="
           clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" WIDTH = "200"
           HEIGHT = "100" codebase="http://java.sun.com/update/1.6.0/
           jinstall-6u30-windows-i586.cab#Version=6,0,0,5"><noembed><xmp>');
        else if (_ns == true && _ns6 == false) document.writeln('<embed ' +
               'type="application/x-java-applet;version=1.6" \
                CODE = "HelloWorldApplet.class" \
                WIDTH = "200" \
                HEIGHT = "100" ' +
                'scriptable=false ' +
                'pluginspage="http://java.sun.com/products/plugin/
                index.html#download"><noembed><xmp>');
    //--></script>
    <applet  CODE = "HelloWorldApplet.class" WIDTH = "200" HEIGHT = "100"></xmp>
        <PARAM NAME = CODE VALUE = "HelloWorldApplet.class" >
        <param name="type" value="application/x-java-applet;version=1.6">
        <param name="scriptable" value="false">

    </applet>
    </noembed>
    </embed>
    </object>

    <!--
    <APPLET CODE = "HelloWorldApplet.class" WIDTH = "200" HEIGHT = "100">

    </APPLET>
    -->
    <!--"END_CONVERTED_APPLET"-->

    </body></html>
### 21.1.4 Fehler in Applets finden Werden Applets vom Browser nicht ausgeführt, weil es Fehler in unserem Programm gibt, dann bieten der Internet Explorer und Netscape die Möglichkeit, Log-Informationen anzusehen und so die Fehler genauer zu studieren. Internet Explorer Im Menü Extra • Internetoptionen findet sich im Reiter Erweitert ein Eintrag mit dem Namen Microsoft VM. Wir wählen dort das Auswahlfeld Java-Protokollierung aktiviert ebenso wie Java-Konsole an. Netscape Im Menü Optionen (Tools) muss der Eintrag Java-Konsole angewählt werden. Es erscheint ein neues Fenster mit den Ausgaben. ### Ihr Kommentar Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen. >> Zum Feedback-Formular
<< zurück | <top> | vor >>
Zum Katalog
Java ist auch eine Insel Jetzt bestellen
Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen? Ihre Meinung
Tipp
| Coding for Fun
Buchempfehlungen
| Objektorientierte Programmierung
| Einstieg in Eclipse 3.4
| Java 6 lernen mit Eclipse
| NetBeans Platform 6
| Java und XML
| Visual C# 2008
| IT-Handbuch für Fachinformatiker
| C++ von A bis Z
Shopping
Versandkostenfrei bestellen in Deutschland und Österreich Info

Copyright © Galileo Press 2009
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

[Galileo Computing]
Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de