Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.
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?

Spacer
<< zurück
Java ist auch eine Insel (8. Auflage) von Christian Ullenboom
Programmieren mit der Java Standard Edition Version 6
Buch: Java ist auch eine Insel (8. Auflage)

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
Pfeil 21 Applets
Pfeil 21.1 Applets in der Wiege von Java
Pfeil 21.1.1 (J)Applet und Applikationen
Pfeil 21.1.2 Das erste Hallo-Applet
Pfeil 21.1.3 HTML Converter
Pfeil 21.1.4 Fehler in Applets finden
Pfeil 21.2 Die Applet-API
Pfeil 21.2.1 Die Zyklen eines Applets
Pfeil 21.2.2 Parameter an das Applet übergeben
Pfeil 21.2.3 Wie das Applet den Browser-Inhalt ändern kann
Pfeil 21.2.4 Den Ursprung des Applets erfragen
Pfeil 21.2.5 Datenaustausch zwischen Applets
Pfeil 21.2.6 Was ein Applet alles darf
Pfeil 21.2.7 Ist Java im Browser aktiviert?
Pfeil 21.2.8 Applet unter Netscape oder Microsoft Internet Explorer?
Pfeil 21.3 Webstart

Mode ist, was man selbst trägt. Altmodisch ist, was die anderen tragen. – Oscar Wilde

21 Applets


Galileo Computing - Zum Seitenanfang

21.1 Applets in der Wiege von Java Zur nächsten ÜberschriftZur vorigen Überschrift

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.



Galileo Computing - Zum Seitenanfang

21.1.1 (J)Applet und Applikationen Zur nächsten ÜberschriftZur vorigen Überschrift

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.


Galileo Computing - Zum Seitenanfang

21.1.2 Das erste Hallo-Applet Zur nächsten ÜberschriftZur vorigen Überschrift

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.

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.


Galileo Computing - Zum Seitenanfang

21.1.3 HTML Converter Zur nächsten ÜberschriftZur vorigen Überschrift

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.

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 && Zeilen-Umbruch 
      _info.indexOf("Windows 3.1") < 0); 
//--></script> 
    <comment> 
        <script language="JavaScript" type="text/javascript"><!-- 
        var _ns = (navigator.appName.indexOf("Netscape") >= 0 && Zeilen-Umbruch 
        ((_info.indexOf("Win") > 0 && _info.indexOf("Win16") < 0 && Zeilen-Umbruch 
        java.lang.System.getProperty("os.version").indexOf("3.5") < 0) || Zeilen-Umbruch 
        (_info.indexOf("Sun") > 0) || (_info.indexOf("Linux") > 0) || (_Zeilen-Umbruch 
        info.indexOf("AIX") > 0) || (_info.indexOf("OS/2") > 0) || Zeilen-Umbruch 
        (_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=" Zeilen-Umbruch 
       clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" WIDTH = "200" Zeilen-Umbruch 
       HEIGHT = "100" codebase="http://java.sun.com/update/1.6.0/Zeilen-Umbruch 
       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/Zeilen-Umbruch 
            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>

Galileo Computing - Zum Seitenanfang

21.1.4 Fehler in Applets finden topZur vorigen Überschrift

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ü ExtraInternetoptionen 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.






<< zurück
  Zum Katalog
Zum Katalog: Java ist auch eine Insel





Java ist auch eine Insel
Jetzt bestellen


 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Tipp
Zum Katalog: Coding for Fun





 Coding for Fun


 Buchempfehlungen
Zum Katalog: Objektorientierte Programmierung





 Objektorientierte
 Programmierung


Zum Katalog: Einstieg in Eclipse 3.4






 Einstieg in
 Eclipse 3.4


Zum Katalog: Java 6 lernen mit Eclipse






 Java 6 lernen
 mit Eclipse


Zum Katalog: NetBeans Platform 6






 NetBeans
 Platform 6


Zum Katalog: Java und XML






 Java und XML


Zum Katalog: Visual C# 2008






 Visual C# 2008


Zum Katalog: IT-Handbuch für Fachinformatiker






 IT-Handbuch für
 Fachinformatiker


Zum Katalog: C++ von A bis Z






 C++ von A bis Z


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo




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