Java 1
  • Home
  • Tutorials
    • Hello World
      • Download
      • Installation unter Windows
      • Installation unter Linux
      • Das Hello World Programm
      • Mehr Java
    • Java Konsole
      • Java Konsole Testen
    • Basic Java
      • Java Programme
        • Die Klasse
        • Datentypen
        • Null
        • Casten
        • Operatoren
        • Kontrollstrukturen
        • Arrays
        • Aufgaben
      • Objektorientierte Konzepte
        • Hallo Fenster
        • Objekte einer Klasse
        • Vererbung
        • Interfaces
      • Alles über Klassen
        • Abstrakte Klassen
        • Methoden überschreiben
        • Super
        • Final
        • Innere Klassen
        • Anonyme Klassen
        • Enumerations
      • You're just an object
        • Sichtbarkeit
        • Druckdarstellung
        • Gleichheit
        • Klonen
        • Die Class
        • Serialisierung
    • Java Api
      • Dokumentation
      • Strings
      • Wrapper Klassen
      • System und Runtime
      • Math
      • Exceptions
      • IO
      • Sammlungsklassen
      • AWT und Swing
      • Alle Komponenten
      • Applets
      • Threads
      • Jar
      • Classpath
    • JSP und Servlets
      • Meine erste JSP
        • Downloads
        • Installation unter Windows
        • Installation unter Linux
        • Admin und Manager
        • Webapplication
      • JSP
        • Java Code in HTML einbinden
        • Das HTTP Request - Response Modell
        • Request und Response Objekte
        • Auswerten von Formulardaten
        • Aufgaben
      • Beans
        • Die Session
        • Weitere vordefinierte Objekte
        • Java-Beans
        • Beans programmieren
        • Java-Beans in JSP nutzen
        • Aufgaben
      • Servlets
        • Nutzen der Servlets
        • Servlets programmieren
        • Servlets auf dem Server einrichten
        • Servlets mit JSP
        • Servlets includen
        • Aufgaben
      • Webapplikation
        • Filter
        • Initialisierungsparameter
        • Error Pages
        • Passwortgeschützte Verzeichnisse
        • Bibliotheken nutzen
        • Eine Webapplikation deployen
        • Ausblick: Wie geht's weiter?
        • JSP-Tags Syntaxreferenz
        • Aufgaben
  • Code
    • Web
      • Datenbankverbindungen mit Tomcat
      • Texte richtig encoden
      • HTTPS mit Tomcat
      • HTML Encoden mit Javascript
    • Java
      • Print F
      • Ein generischer Poolbuilder
      • Native Bibliotheken
      • Unique Ids
    • Java FX
      • Balls
      • Hearts
      • Planner
    • Java ME
      • The Next Big Thing
    • System
      • Vi Kommandos
  • Sidemap
  • Impressum
  • Hilfe
Home > Tutorials > Java Api > Applets
  • Home
  • Tutorials
    • Hello World
    • Java Konsole
    • Basic Java
    • Java Api
      • Dokumentation
      • Strings
      • Wrapper Klassen
      • System und Runtime
      • Math
      • Exceptions
      • IO
      • Sammlungsklassen
      • AWT und Swing
      • Alle Komponenten
      • Applets
      • Threads
      • Jar
      • Classpath
    • JSP und Servlets
  • Code
  • Sidemap
  • Impressum
  • Hilfe

Applets

Applets sind kleine Java Programme, die innerhalb einer Webseite ausgeführt werden. Anfangs waren sie der Schlüssel zum Erfolg der Sprache Java im Web, aber heute hat ihre Bedeutung stark abgenommen und man findet meist DHTML, Flash oder ähnliches, wo früher Applets erschienen. Ein Grund hierfür war, dass die Java – Implementierungen der einzelnen Browser sehr unterschiedlich und teilweise veraltet waren. So führte ein jahrelanger Streit zwischen Sun und Microsoft um die Standards der Sprache Java dazu, dass der damals besonders verbreitete Microsoft Browser mit einer veralteten oder gar ohne Java VM ausgeliefert wird.

Heute hat sich die Situation sehr gebessert, es kann auf allen moderen Browsern das Java-Plugin verwendet werden, das die jeweils neuste Java -  Implementierung zur Verfügung stellt.

Opera verhält sich wie Netscape 6, Konquerer kann mit jeder VM des Systems zusammenarbeiten.

Das Applet wird dann über den <object><embed>- Tag wie andere Plug-Ins auch eingebunden. Seit Java 1.4 kann das Plugin auch mit dem <applet> - Tag verwendet werden. Voraussetzung ist, dass ein aktuelles Java Runtime installiert wird.

Applets programmieren

Applets sind spezielle Komponenten, die vom Browser kontrolliert werden. Sie unterliegen einem besonderen Sicherheitskonzept (Sandbox) und dürfen beispielsweise nicht auf das Dateisystem des Rechners zugreifen oder andere Server als den, vom dem sie geladen wurden, kontakten. Sie müssen von java.awt.Applet oder javax.swing.JApplet (Swing) abgeleitet sein.

Der Konstruktor hat bei Applets nur eine untergeordnete Bedeutung; Überschrieben Sie vielmehr folgende vier Methoden auf, die wir als Einstiegspunkte benutzen können und die der Browser entsprechend aufruft:

init()
Wir einmal anfangs aufgerufen, nachdem der Code des Applets geladen ist.

start()
Wird nach init() aufgerufen. Kann mehrfach aufgerufen werden, wenn das Applet mit stop() gestoppt wurde.

stop()
Kann aufgerufen werden, wenn das Applet nicht mehr sichtbar ist, beispielsweise weil die Seite runtergescrollt oder entladen wurde.

destroy()
Wird aufgerufen, bevor das Applet endgültig aus dem Speicher entfernt wird.

 

Soweit die Theorie. Tatsächlich machen die Browser keinengroßen Unterschied zwischen init und start sowie stop und destroy, sondern rufen jeweils beide Methode beim Laden bzw. entladender Seite auf.

Prinzipiell können Sie in einem Applet alle bekannten Komponenten wie Buttons, Listen usw. verwenden, um Benutzeroberflächen herzustellen. Nutzen Sie dazu einfach Applet#add(Component) bzw. JApplet#getContentPane().add(Component) mit den entsprechenden Layout-Managern. Wir wollen hier einen anderen Weg gehen und ein bisschen mit der Grafik – Programmierung anfangen. Dazu bauen wir ein einfaches Laufschrift – Applet.

Applets für die Webseite

Applets können über den Applet Tag in eine HTML-Seite eingebunden werden. Der Applet Tag ist nach neueren W3CSpezifikationen nicht mehr empfohlen, aber er wird natürlich immer noch haufig verwendet. Sie können folgende Angaben in demTag vornehmen:

	
<applet 
	width=“123“ height=“123“ 	// obligatorisch
	code=”mypackage.TheClass” 	// obligatorisch oder object
	object=”serializiertesObject.ser” // anstelle von Code
	codebase=”../classes“ 	// Verzeichnis, in dem die Klassen zu finden sind;
			  	// kann weggelassen werden, wenn dasselbe wie html
	archive=“applet.jar“   // Ein Archiv, das in ../classes zu finden ist und die 
			// Class – Dateien und Ressourcen enthält. 
			// ACHTUNG: Dies wird von der Microsoft VM  nicht 
			// unterstützt. Verwenden Sie „cabbase“ mit
			// Cabinet – Dateien oder legen Sie die Klassen
			// lose ins Verzeichnis.
	>
	<param name=“param_name“ value=“Hallo Welt“></param>
</applet>

Eingeschachtelt in den Applet-Tag können Sie dem Applet Parameter übergeben, die das Applet mit getParameter(„param_name") auslesen kann.

Seit Java 1.4 können Sie zusätzliche Applet-Parameter verwenden, die spezifizieren, was angezeigt werden soll, während das Applet geladen wird. So kannman ein Bild und einen Text ausgeben sowie die Farben für Hintergrund und Statusbalken bestimmen. Einzelheiten bei Sun.

Wie bereits erwähnt, können Sie die Nutzung des Java-Plugins mit dem Object / Embed Tag erzwingen. Das Java – Plugin ist ein Teil des JRE (Java Runtime) und ermöglicht es praktisch allen Browsern, eine aktuelle Java-Versionzu verwenden. Da der Tag nicht ganz einfach zu schreiben ist, hat Sun ein Tool bereitgestellt, das den Applet – Tag in den neuen Plugin – Tag umwandelt. Das Tool heißt HtmlConverter, Sie finden esunter $JDK_HOME/bin. Die Bedienung ist intuitiv.

Wenn Sie Applets entwickeln und etwas funktioniert nicht wie erwartet denken Sie daran, dass die Browser Java – Klassen hemmungslos cachen. Eine einmal vorhandene Java – Class Datei wird so gut wie nie aktualisiert. Wenn Sie keine Lust haben, den Browsercache dauernd zulöschen, nutzen Sie doch den Appletviewer, um Ihre Appletsauszuführen:

appletviewer myappletpage.html.Myappletpage.html

ist dabei eine HTML-Seite, die entweder den Applet-Tag oder den Object / Embed – Tag enthält.

Grafikprogrammierung mit dem AWT

Um in einem Applet zu zeichnen, überschreiben wir dieMethode paint(Graphics),die unser Applet von java.awt.Component geerbt hat. Paint ist bei allen Komponenten mit für die Optik zuständig, und indem wir die Methode überschreiben, können wir unsere eigene grafische Implementierung realisieren. Sie können damit auch eigene Komponenten realisieren.

Die init() - Methode wird vom Browser aufgerufen, wenn das Applet erzeugt wird. Bei jedem Neuzeichnen wird stets paint(Graphics) aufgerufen, wo das Aussehen des Applets gezeichnet wird.

Das java.awt.Graphics– Objekt, das wir in paint(Graphics) bekommen, repräsentiert einen grafischen Kontext, in diesem Fall den Bildschirm. Im Falle eines anderen Kontexts, z.B. des Druckers, erhalten Sie einen anderen Kontext, können aber dieselben Befehle verwenden. Graphics bietet eine Reihe von Methoden an, die Sie zum Zeichnen verwenden können. Bitte studieren Sie den Quellcode von SomeGraphics.java. Wie Sie erkennen können, haben wir einen „Stift" , mit dem wir zeichnen können. Wir können Linien und Rechtecke zeichnen, die auchgefüllt sein können (fillRectangle()). Die Farbe des Stifts läßt sich mit setColor(Color) verändern. Die Methode drawString(..) gibt Text aus, wobei die Schriftart mit setFont(..) gesetzt werden kann. In der Klassendokumentation zu java.awt.Graphics finden Sie Zeichenmethoden, die ähnlich funktionieren.

Bei den meinsten Methoden übergibt man auch Koordinaten, die die Position der Figuren bestimmen. Diese sind in Pixel angegeben und beziehen sich auf die linke obere Ecke.

Aufgabe: HalloWeltApplet

Schreiben Sie das HalloWeltApplet, das den Satz "Hallo Welt" mittels Grafikfunktionen ausgibt. Erstellen Sie eine HTML-Seite und zeigen Sie das Applet im Browser an.
Verbessern Sie die Funktionalität des Applets, indem der anzuzeigende Text als Parameter aus der HTML - Seite mittels des Parameter-Tags übergeben werden kann.

Musterlösung: java1.aufg.referenz.HalloWeltApplet

« Alle Komponenten
Java Api
Threads »
Show/Hide Footer Actions

Kommentare:

Sie müssen angemeldet sein um eine Nachricht zu erstellen. Anmelden »
© 2012 Java 1. Alle Rechte vorbehalten.
Anmelden
concrete5 - open source CMS
Theme by Site5 / Mnkras.