• Keine Ergebnisse gefunden

Animierte Grafik

N/A
N/A
Protected

Academic year: 2022

Aktie "Animierte Grafik"

Copied!
13
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Animierte Grafik

(2)

Programm Animation1.java

Animation: Versuch I

wartet ms Millisekunden

repaint() fordert Neu-Zeichnen an (z.B. in Endlos-Schleife)

flackert normalerweise

public static void warte(long ms) { try { Thread.sleep(ms); }

catch(InterruptedException e) {}

}

(3)

Fenster-Aktualisierung

Klasse Frame

update() Windowmanager

Eigene Klasse repaint()

paint()

1. füllt Fenster mit Hintergrund-Farbe 2. ruft paint() auf

(4)

Fenster-Aktualisierung

Klasse Frame

update() Windowmanager

Eigene Klasse repaint()

paint()

1. füllt Fenster mit Hintergrund-Farbe 2. ruft paint() auf

(5)

Fenster-Aktualisierung

Klasse Frame

update() Windowmanager

Eigene Klasse repaint()

paint() update() überschreiben

1. füllt Fenster mit Hintergrund-Farbe 2. ruft paint() auf

(6)

createImage(int b, int h) erzeugt Image der Größe b, h Achtung: Funktioniert nicht an beliebiger Stelle – bei

Bedarf z.B. in paint() erzeugen

Methode getGraphics() der Klasse Image liefert Graphics-Kontext

drawImage(Image img, int x, int y,

ImageObserver o) zeichnet img mit linker oberer Ecke an Position (x, y) Für o kann „this“ eingesetzt werden

Offscreen-Images

(7)

Programm Animation2.java

Animation: Versuch 2

Methode update() überschreiben:

Methode paint():

Grafik in Offscreen-Image aktualisieren

Offscreen-Image

→ Bildschirm

public void update(Graphics g) { paint(g);

}

(8)

Programm Animation3.java

Fenster sauber schließen

java.awt.event einbinden

Interface WindowListener implementieren

Methode windowClosing(WindowEvent e):

1.

setVisible(false): Fenster vom Bildschirm entfernen

2.

dispose(): Aufräumen

3.

System.exit(0): Programm verlassen

Rest vom Interface: leer

addWindowListener(this):

Listener beim Fenster anmelden

(9)

Knöpfe und anderer

Schnickschnack

(10)

Klasse Button (Knöpfe)

• Konstruktor Button(String Text )erzeugt Knopf mit Inhalt „ Text

• Methode setLabel(String Text ) ersetzt den aktuellen Text des Knopfs durch „ Text

• Methode addActionListener(ActionListener l ) aktiviert Listener für den Knopf

(wenn wir das Interface ActionListener in der

aktuellen Klasse implementieren, können wir „ this “ für

l einsetzen)

(11)

Klasse TextField

• Konstruktor TextField(String Text , int l ) erzeugt Eingabefeld, initialisiert es mit „ Text “ &

reserviert l Zeichen für die Eingabe

• Methode getText() gibt den (ggfs. geänderten) Inhalt des Eingabefeldes als String zurück

• Methode addActionListener(ActionListener l ) aktiviert Listener für das Eingabefeld (vgl. Klasse

Button)

(12)

Klasse Label

• Konstruktor Label(String Text )erzeugt Textfeld und füllt dieses mit „ Text “ Die Größe des Textfeldes wird dabei durch die Länge

der Zeichenkette Text festgelegt!

• Methode setText(String Text ) ersetzt den aktuellen Text des Textfeldes durch „ Text

Objekt e wie Knöpfe, Textfelder & Labels werden mit

der Methode add( Objekt ) zum Fenster hinzugefügt

(13)

Layout-Manager

Die Objekt e sind im Fenster zu verteilen:

• setLayout(null)erzeugt ein sog. Null-Layout

(leider das Standard-Layout für Java-Programme). Alle Komponenten müssen dann ihre Position & Größe

selbst festlegen – z.B. mit der Methode setBounds

(int x , int y , int breite , int hoehe )

• Einfacher: verschiedene vorgefertigte Layouts –

insbesondere FlowLayout() – verteilen Objekt e (Knöpfe, ...) automatisch

setLayout(new FlowLayout());

Referenzen

ÄHNLICHE DOKUMENTE

Oracle8i interMedia Text erlaubt es unstrukturierte Daten (Texte) zu verwalten, indizieren und danach zu suchen.. • Die Freitextsuche erlaubt es Dokumente innerhalb und außerhalb

” Mit dem Terminus Text Mining werden computergest¨ utzte Verfahren f¨ ur die semantische Analyse von Texten bezeichnet, welche die automatische bzw1. semi-automatische

The results showed that this methodology of adding respective entries of string subsequence kernels for different λ’s and using the resultant kernel matrix with an SVM does not

Tulemuste tõlgendamisel tuleks arvestada lapse sotsiaalse taustaga, sarnaste testide täitmise kogemust ja kõne arengut, mis võib olla takistavaks teguriks lapse ja testija

Seine Präsentation enthält Informationen zum Anwendungsbereich und Inhalt der DSGVO, zu den Ausnahmen für Archivzwecke sowie zu einzelnen Maßnahmen die Archive ergreifen müssen,

Effis Mann Instetten stellt Rollo seiner jungen Frau zur Seite: »Es ist aber bloß ein Neufundländer, ein wunderschö- nes Tier, das mich liebt und Dich auch lieben wird.« (EB,

A program written on JOVIAL coding paper is shown below. The coding sheet is simply an array of little squares. The 80 columns on the paper correspond to the 80 columns on

When the editor is called with no file names specified, a temporary file in the user's current directory is created into which the information is written as