• Keine Ergebnisse gefunden

Grafik - wozu?

N/A
N/A
Protected

Academic year: 2021

Aktie "Grafik - wozu?"

Copied!
18
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Grafik - wozu?

Grafik - wozu?

• GUI – Grafische Benutzungsschnittstellen – Geh¨ort zum Standardumfang des JDK – 2 Varianten: AWT und Swing

– Konzeptuell sind beide Varianten gleich – Heute: Beispiel f¨ur AWT

• Zeichnen, Bilder, 3D-Modelle

(2)

AWT (Abstract Window Toolkit)

AWT (Abstract Window Toolkit)

• Basierend auf den Elementen des Fenstersystems

• Schnittmenge der Fenstersysteme

• Alt

• Vergleichsweise schnell

• L¨auft (halbwegs) problemlos in Internetbrowsern

Beispiele aus dem AWT-Tutorial.

(3)

Swing

Swing

• Vollst¨andig in Java implementiert

• Viele Features – “jeder m¨ogliche grafische Schnickschnack”

• Neu

• Langsam

• L¨auft nicht selbstverst¨andlich in Internetbrowsern

(4)

AWT-Grundkonzept

AWT-Grundkonzept

• Hierarchische Klassenstruktur f¨ur grafische Elemente

• Klassen werden direkt verwendet und/oder spezialisiert

• Pakete java.awt und java.awt.event: – java.awt: Grafische Komponenten – java.awt.event: Ereigniskonzept

(5)

AWT-Grundkonzept

java.awt

Frame Panel

Button Canvas

Component

java.awt.event

Container Event

ActionEvent

«interface»

ActionListener

+actionPerformed(ActionEvent)

Vordefinierte AWT-Klassen.

(6)

Beispiel: Einsamer PacMan

Beispiel: Einsamer PacMan

Der einsame PacMan ohne seine Freunde.

(7)

Beispiel: Einsamer PacMan

LonelyPacManApp

LPMFrame

LPMPanel

PacMan

Button Button Button Button

move right

move left move up move down

Objekte f¨ur den einsamen PacMan.

(8)

Beispiel: Einsamer PacMan

LonelyPacManApp LPMFrame

LPMPanel PacMan

java.awt

Frame Panel

Button Canvas

Component

java.awt.event

Container

4

Event

ActionEvent

«interface»

ActionListener

+actionPerformed(ActionEvent)

Klassen f¨ur den einsamen PacMan.

(9)

Schritt 1: Grundger¨ust

Schritt 1: Grundger¨ ust

• Applikationsrahmen anlegen

• Hauptfenster spezialisieren

• Buttons, Panel einf¨ugen

Java 1.1-API-Dokumentation

(10)

Schritt 2: Layout des Hauptfensters

Schritt 2: Layout des Hauptfensters

• Layout-Unterst¨utzung durch LayoutManager

• Hier: vordefiniertes BorderLayout

• Beachte: ist Standard f¨ur Frame-Objekte

(11)

Schritt 3: PacMan entwerfen

Schritt 3: PacMan entwerfen

• Panel spezialisieren

• Hier: kein Layout, das macht PacMan selbst

• PacMan aus Canvas spezialisieren

• paint() redefinieren

• PacMan einf¨ugen

(12)

Schritt 4: Interaktion realisieren

Schritt 4: Interaktion realisieren

• Ereignisbasiert: PacMan lauscht auf Button-Ereignisse

• PacMan wird ein ActionListener

• PacMan als Lauscher registrieren

(13)

Weitere Grafik-APIs

Weitere Grafik-APIs

Im JDK integriert:

• Java2D: Zeichnen von Punkten, Linien, Rechtecken etc.

Beispiel aus dem JDK1.4: Java2Demo.jar Optionale APIs:

• JAI (Java Advanced Imaging): Bildbearbeitung

(14)

Java3D

Java3D

• Interaktive 3D-Modelle bzw. “virtuelle Welten”

• Grundgedanke ¨ahnlich zu AWT/Swing:

Klassenhierarchie f¨ur Komponenten und Interaktionen

• Unterschied:

Interne Datenstruktur ist eine dreidimensionale virtuelle Welt

• Anbindung an GUI:

Spezielle Canvas-Objekte pr¨asentieren eine Ansicht der virtuellen Welt

(15)

Java3D

Modellierung der virtuellen Welt durch hiearchischen Szenengraph:

• Geometrie: Primitiven wie W¨urfel, Kugel sowie Kompositionen daraus

• Interaktive Elemente: Sensoren

• Aktive Elemente: Animationen, Abl¨aufe

Alle Komponenten stehen als vordefinierte Java-Klassen zur Verf¨ugung.

(16)

Beispiel: Fahrstuhl

Beispiel: Fahrstuhl

Fahrstuhlapplikation

(17)

Beispiel: Fahrstuhl

ElevatorCabin

ElevatorShaft

FloorSensor

Group

Group

PositionInterpolator

Floor Floor

CollisionReporter ClickCallbackBehavior

ElevatorDoor

ElevatorDoorHalf ElevatorDoorHalf

PositionInterpolator PositionInterpolator

Box Box

Box Box

...

...

Button Text Box Box

Sphere

Szenengraph der Fahrstuhlapplikation

(18)

Ende.

Ende.

Referenzen

ÄHNLICHE DOKUMENTE

Gleichzeitig werden aber auch kritische Aspekte thematisiert: So können diese Medien beispielswei- se eine direkte persönliche Bera- tung durch einen Arzt nicht erset- zen..

public class Haupt extends Applet{. Kreuz

Beschreiben Sie so einfach und klar wie möglich Ihre individuelle Lösung und den einzigartigen Nutzen, den sie bringt. Die Lösung ist der Ziel- Zustand und entspricht 1:1 dem

anordnungen handelt es sich sonach um (fiktive) Aufnahmen beliebig geneigten Geländes, dessen (gerechnete) Modelle im Gerät orthogonal ausgemessen werden können. Gitterplatten mit

Zweitens erforderte die massive Umstellung auf Homeoffice und dadurch häufigere asynchrone Kommunikation Flexibilität durch mehr selbst ge- wählte Zeiten für Arbeiten und Lernen

Zu diesem Zeitpunkt hatte ich noch keine Ahnung, daß es zwar eine Fülle von ethnologischen Büchern über Kannibalismus gibt, auch psychologische und medizinische Abhandlungen,

Weil unser Agent sich einerseits multimodal (mit Sprache, Gestik und auch Gesichtsmimik) äußern kann und er sich andererseits mit der Assemblierung, das heißt dem Zusammenbau

(select x (OBJEKTTYP(x)= SCHRAUBE und FARBE(x)= GELB)) (select x (OBJEKTTYP(x)= SCHRAUBE und FARBE(x)= GELB)) (select y (OBJEKTTYP(y)= LEISTE und GROESSE(y)=GROSS)) (select