Ashraf Abu Baker [email protected]
description
Transcript of Ashraf Abu Baker [email protected]
Java-Intensivkurs WS07/08Folie 1
Ashraf Abu [email protected]
Johann Wolfgang Goethe-UniversitätProfessur für Graphische DatenverarbeitungFachbereich Informatik und MathematikProf. Dr. Detlef Krömker
Java-Intensivkurs WS07/08Folie 2
Applets
Applet:Java-Programm
Eingebettet in einer HTML-Seite
Ausführung von einem Java-fähigen Web-Browser oder sog. AppletViewer
Java-fähiger Browser?Abgespeckte Version der JVM
Als Plug-In für den Browser installiert
Java-Intensivkurs WS07/08Folie 3
Applets
HTML-Seite und das Applet befinden sich auf einem Web-Server
Java-Intensivkurs WS07/08Folie 4
Applets
Applets sind Unterklasse von javax.swing.JApplet
java.applet.Applet (Oberklasse von JApplet)
Lebensdauer einer ApplikationEndet mit der Beendigung der main-Methode
Applets haben einen anderen Lebenszyklus Bestimmt durch die Methoden init(), start(), stop() und destroy()
Java-Intensivkurs WS07/08Folie 5
Applets
init() Aufruf:
- genau einmal unmittelbar nach Aufruf des Konstruktors
Soll so überschrieben:– Instanzvariablen initialisieren– Objekte erzeugen – Bilder und Schriften laden – Parameter einlesen
start() Aufruf:
- unmittelbar nach dem Aufruf von init()
- immer wieder, wenn das Applet wieder sichtbar wird
Java-Intensivkurs WS07/08Folie 6
Applets
stop() Aufruf:
- Benutzer verlässt die HTML-Seite des Applets und besucht eine andere Seiten
Soll so überschrieben werden:- stoppt gestartete Animationen, Music, Threads usw.
Um die CPU nicht unnötig zu belasten
destroy()Aufruf nur einmal:
- wenn der Benutzer das Browser-Fenster schließt
Soll Aufräumarbeiten vornehmen
Java-Intensivkurs WS07/08Folie 7
Applets
Ein Applet wird während seinem Lebensdauer:1 x geladen, instanziiert und initialisiert (init())
1 x oder mehrere Male gestartet (start()) oder gestoppt (Stopp())
1 x „vernichtet“ (destroy())
Alle genannten Methoden sollen entsprechend überschrieben werden
Java-Intensivkurs WS07/08Folie 8
Applets
SicherheitKein Zugriff auf das lokale Dateisystem
Kein Start von externen Programmen
Kein Aufbau einer Netz-Verbindung z. B. zum Server, vom dem
Das Applet gestartet wurde
Die Kontrolle über die Sicherheit eines Applets ist im Browser implementiert
Java-Intensivkurs WS07/08Folie 9
Applets
Beispiel Laufschriftapplet
Java-Intensivkurs WS07/08Folie 10
Applets
Einbettung in HTML
<html><head><title>Mein erstes Applet</title><meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1"></head><body><h1>Ein Laufschriftapplet</h1>
<applet code="applets.TickerApplett.class" width="400" height="200" >
<param name="text" value="Das ist mein erstes Applet!"> </applet></p></body></html>
Java-Intensivkurs WS07/08Folie 11
Applets
Java-Programm sowohl als Applet als auch als Applikation implementieren:
Hauptklasse des Programms muss eine Unterklasse von Applet bzw. JApplet sein
Die eine main-Methode enthalten– main-Methode instanziiert die Klasse
– main-Methode ruft init() und start() auf
Java-Intensivkurs WS07/08Folie 12
Java2D
paint(Graphics g)Aufruf:
- Die grafische Oberfläche einer Applikation muss neu gezeichnet werden:– Fenster wird verschoben– Fenster wird teilweise überdeckt
repaint() Aufruf:
- Die grafische Oberfläche einer Applikation soll neu gezeichnet werden:
Ruft update() auf
update(Graphics g) Löscht den Zeichenbereich der Anwendung
Ruft paint() auf
Java-Intensivkurs WS07/08Folie 13
Java2D
java.awt.Graphics -Klasse:Graphics ist eine abstrakte Klasse
Methoden zum Zeichnen von Graphikprimitiven:- Linien, Kreisen und Ellipsen, Bögen, Rechtecke, Polygonen und
Bildern
Methoden Text-Darstellung und -formatierung
Java-Intensivkurs WS07/08Folie 14
Java2D
Koordinatensystem
Java-Intensivkurs WS07/08Folie 15
Java2D
Textformatierung und Darstellung
Java-Intensivkurs WS07/08Folie 16
Java2D
Zeichnung von graphischen Primitiven
Java-Intensivkurs WS07/08Folie 17
AWT / Swing
Swing/ AWT (Abstract Window Toolkit)
API zur Erstellung von graphischen Benuzeroberflächen (GUI)
AWT Stark abhängig vom darunterliegenden System
Veraltet
Swing Erweiterung des AWT und plattformunabhängig
Java-Intensivkurs WS07/08Folie 18
AWT/Swing
Beide bieten Komponenten: Buttons, Textfelder, Scrollbars, CheckBoxes, RadioButton
Beide bieten Container: Frames, Dialogfelder und Panels
Container dienen der Aufnahme von Komponenten
Java-Intensivkurs WS07/08Folie 19
AWT/Swing
Java-Intensivkurs WS07/08Folie 20
LayoutManager
LayoutManager:Ausrichtung von Komponenten innerhalb von Containern
BorderLayout
Java-Intensivkurs WS07/08Folie 21
LayoutManager
GridLayout
Java-Intensivkurs WS07/08Folie 22
LayoutManager
FlowLayout