220 likes | 507 Views
Johann Wolfgang Goethe-Universität Professur für Graphische Datenverarbeitung Fachbereich Informatik und Mathematik Prof. Dr. Detlef Krömker. Einführung in die OOP in Java. WS 07/08. Ashraf Abu Baker baker@gdv.cs.uni-frankfurt.de. Applets. Applet: Java-Programm
E N D
Johann Wolfgang Goethe-Universität Professur für Graphische Datenverarbeitung Fachbereich Informatik und Mathematik Prof. Dr. Detlef Krömker Einführung in die OOP in Java WS 07/08 Ashraf Abu Baker baker@gdv.cs.uni-frankfurt.de Java-Intensivkurs WS07/08 Folie 1
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/08 Folie 2
Applets • HTML-Seite und das Applet befinden sich auf einem Web-Server Java-Intensivkurs WS07/08 Folie 3
Applets • Applets sind Unterklasse von • javax.swing.JApplet • java.applet.Applet (Oberklasse von JApplet) • Lebensdauer einer Applikation • Endet mit der Beendigung der main-Methode • Applets haben einen anderen Lebenszyklus • Bestimmt durch die Methoden init(), start(), stop() und destroy() Java-Intensivkurs WS07/08 Folie 4
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/08 Folie 5
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/08 Folie 6
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/08 Folie 7
Applets • Sicherheit • Kein 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/08 Folie 8
Applets • Beispiel Laufschriftapplet Java-Intensivkurs WS07/08 Folie 9
Applets • Einbettung in HTML Java-Intensivkurs WS07/08 Folie 10
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/08 Folie 11
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/08 Folie 12
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/08 Folie 13
Java2D • Koordinatensystem Java-Intensivkurs WS07/08 Folie 14
Java2D • Textformatierung und Darstellung Java-Intensivkurs WS07/08 Folie 15
Java2D • Zeichnung von graphischen Primitiven Java-Intensivkurs WS07/08 Folie 16
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/08 Folie 17
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/08 Folie 18
AWT/Swing Java-Intensivkurs WS07/08 Folie 19
LayoutManager • LayoutManager: • Ausrichtung von Komponenten innerhalb von Containern • BorderLayout Java-Intensivkurs WS07/08 Folie 20
LayoutManager • GridLayout Java-Intensivkurs WS07/08 Folie 21
LayoutManager • FlowLayout Java-Intensivkurs WS07/08 Folie 22