22
Java-Intensivkurs WS07/08 Folie 1 Ashraf Abu Baker [email protected] nn Wolfgang Goethe-Universität essur für Graphische Datenverarbeitung bereich Informatik und Mathematik . Dr. Detlef Krömker

Ashraf Abu Baker [email protected]

  • Upload
    berne

  • View
    113

  • Download
    1

Embed Size (px)

DESCRIPTION

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 [email protected]. Applets. Applet: Java-Programm - PowerPoint PPT Presentation

Citation preview

Page 1: Ashraf Abu Baker baker@gdv.cs.uni-frankfurt.de

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

Page 2: Ashraf Abu Baker baker@gdv.cs.uni-frankfurt.de

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

Page 3: Ashraf Abu Baker baker@gdv.cs.uni-frankfurt.de

Java-Intensivkurs WS07/08Folie 3

Applets

HTML-Seite und das Applet befinden sich auf einem Web-Server

Page 4: Ashraf Abu Baker baker@gdv.cs.uni-frankfurt.de

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()

Page 5: Ashraf Abu Baker baker@gdv.cs.uni-frankfurt.de

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

Page 6: Ashraf Abu Baker baker@gdv.cs.uni-frankfurt.de

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

Page 7: Ashraf Abu Baker baker@gdv.cs.uni-frankfurt.de

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

Page 8: Ashraf Abu Baker baker@gdv.cs.uni-frankfurt.de

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

Page 9: Ashraf Abu Baker baker@gdv.cs.uni-frankfurt.de

Java-Intensivkurs WS07/08Folie 9

Applets

Beispiel Laufschriftapplet

Page 10: Ashraf Abu Baker baker@gdv.cs.uni-frankfurt.de

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>

Page 11: Ashraf Abu Baker baker@gdv.cs.uni-frankfurt.de

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

Page 12: Ashraf Abu Baker baker@gdv.cs.uni-frankfurt.de

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

Page 13: Ashraf Abu Baker baker@gdv.cs.uni-frankfurt.de

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

Page 14: Ashraf Abu Baker baker@gdv.cs.uni-frankfurt.de

Java-Intensivkurs WS07/08Folie 14

Java2D

Koordinatensystem

Page 15: Ashraf Abu Baker baker@gdv.cs.uni-frankfurt.de

Java-Intensivkurs WS07/08Folie 15

Java2D

Textformatierung und Darstellung

Page 16: Ashraf Abu Baker baker@gdv.cs.uni-frankfurt.de

Java-Intensivkurs WS07/08Folie 16

Java2D

Zeichnung von graphischen Primitiven

Page 17: Ashraf Abu Baker baker@gdv.cs.uni-frankfurt.de

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

Page 18: Ashraf Abu Baker baker@gdv.cs.uni-frankfurt.de

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

Page 19: Ashraf Abu Baker baker@gdv.cs.uni-frankfurt.de

Java-Intensivkurs WS07/08Folie 19

AWT/Swing

Page 20: Ashraf Abu Baker baker@gdv.cs.uni-frankfurt.de

Java-Intensivkurs WS07/08Folie 20

LayoutManager

LayoutManager:Ausrichtung von Komponenten innerhalb von Containern

BorderLayout

Page 21: Ashraf Abu Baker baker@gdv.cs.uni-frankfurt.de

Java-Intensivkurs WS07/08Folie 21

LayoutManager

GridLayout

Page 22: Ashraf Abu Baker baker@gdv.cs.uni-frankfurt.de

Java-Intensivkurs WS07/08Folie 22

LayoutManager

FlowLayout