Class Leinwand

java.lang.Object
  extended by Leinwand
All Implemented Interfaces:
java.awt.event.ComponentListener, java.util.EventListener

public class Leinwand
extends java.lang.Object
implements java.awt.event.ComponentListener

Leinwand ist eine Klasse, die einfache Zeichenoperationen auf einer leinwandartigen Zeichenflaeche ermoeglicht. Sie ist eine vereinfachte Version der Klasse Canvas (englisch fuer Leinwand) des JDK und wurde speziell fuer das Projekt "Figuren" geschrieben.

In der erweiterten Fassung kann die Leinwand zusaetzlich auch Texte darstellen und Tastaturbefehle abfragen. Dadurch ist es moeglich, einfache Spiele auf der Leinwand zu programmieren. Die Farbpalette der Methode setzeZeichenfarbe () wird schrittweise erweitert, um den Anwendungsbeduerfnissen gerecht zu werden.

Version:
2013-04-19
Author:
Bruce Quig, Michael Koelling (mik), Axel Schmolitzky, Bernd Gramlich, Stefanie E.

Method Summary
 void componentHidden(java.awt.event.ComponentEvent e)
          Reagiere nicht auf das Verstecken der Zeichenflaeche.
 void componentMoved(java.awt.event.ComponentEvent e)
          Reagiere nicht auf das Bewegen der Zeichenflaeche.
 void componentResized(java.awt.event.ComponentEvent e)
          Reagiere auf Groessenaenderungen der Zeichenflaeche, indem Du den Beobachtern die neue Breite und Hoehe mitteilst.
 void componentShown(java.awt.event.ComponentEvent e)
          Reagiere nicht auf das Zeigen der Zeichenflaeche.
 void entferne(java.lang.Object figur)
          Entferne die gegebene Figur von der Leinwand.
 void erneutZeichnen()
          Zeichne erneut alle Figuren und Texte auf der Leinwand.
static Leinwand erzeugeLeinwand(java.lang.String titel, int breite, int hoehe, java.awt.Color grundfarbe)
          Erzeuge die einzig verfuegbare Leinwand (also den "leinwandSingleton").
 int gibBreite()
          Nenne die Breite der Zeichenflaeche.
 javax.swing.JFrame gibFenster()
           
 int gibHoehe()
          Nenne die Hoehe der Zeichenflaeche.
static Leinwand gibLeinwand()
          Gib die einzige verfuegbare Leinwand zurueck (also den "leinwandSingleton").
 void loescheAlsBeobachter(LeinwandBeobachter b)
          Loesche einen Leinwandbeobachter.
 void radiere(java.lang.Object text)
          Radiere den gegebenen Text von der Leinwand.
 void schreibe(java.lang.Object text, java.awt.Color farbe, java.lang.String zeichenkette, int x, int y, int groesse)
          Schreibe fuer das gegebene Text-Objekt eine Zeichenkette (einen String) auf die Leinwand.
 void setzeSichtbarkeit(boolean sichtbar)
          Setze, ob diese Leinwand sichtbar sein soll oder nicht.
 void setzeZeichenfarbe(java.awt.Paint farbe)
          Setze die Zeichenfarbe der Leinwand.
 void speichereAlsBeobachter(LeinwandBeobachter b)
          Speichere einen Leinwandbeobachter.
 java.awt.event.KeyEvent tastendruck()
          Gib den letzten, noch nicht verarbeiteten Tastendruck zurueck, den die Leinwand empfangen hat.
 void warte(int millisekunden)
          Warte fuer die angegebenen Millisekunden.
 void zeichne(java.lang.Object figur, java.awt.Paint farbe, java.awt.Shape shape)
          Zeichne fuer das gegebene Figur-Objekt eine Java-Figur (einen Shape) auf die Leinwand.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

componentHidden

public void componentHidden(java.awt.event.ComponentEvent e)
Reagiere nicht auf das Verstecken der Zeichenflaeche.

Specified by:
componentHidden in interface java.awt.event.ComponentListener

componentMoved

public void componentMoved(java.awt.event.ComponentEvent e)
Reagiere nicht auf das Bewegen der Zeichenflaeche.

Specified by:
componentMoved in interface java.awt.event.ComponentListener

componentResized

public void componentResized(java.awt.event.ComponentEvent e)
Reagiere auf Groessenaenderungen der Zeichenflaeche, indem Du den Beobachtern die neue Breite und Hoehe mitteilst.

Specified by:
componentResized in interface java.awt.event.ComponentListener

componentShown

public void componentShown(java.awt.event.ComponentEvent e)
Reagiere nicht auf das Zeigen der Zeichenflaeche.

Specified by:
componentShown in interface java.awt.event.ComponentListener

entferne

public void entferne(java.lang.Object figur)
Entferne die gegebene Figur von der Leinwand.

Parameters:
figur - die Figur, deren Shape entfernt werden soll

erneutZeichnen

public void erneutZeichnen()
Zeichne erneut alle Figuren und Texte auf der Leinwand.


erzeugeLeinwand

public static Leinwand erzeugeLeinwand(java.lang.String titel,
                                       int breite,
                                       int hoehe,
                                       java.awt.Color grundfarbe)
Erzeuge die einzig verfuegbare Leinwand (also den "leinwandSingleton"). Wenn die Leinwand bereits erzeugt war, ersetze sie durch eine neue Leinwand.

Parameters:
titel - Titel, der im Rahmen der Leinwand angezeigt wird
breite - die gewuenschte Breite der Leinwand
hoehe - die gewuenschte Hoehe der Leinwand
grundfarbe - die Hintergrundfarbe der Leinwand

gibBreite

public int gibBreite()
Nenne die Breite der Zeichenflaeche.


gibFenster

public javax.swing.JFrame gibFenster()

gibHoehe

public int gibHoehe()
Nenne die Hoehe der Zeichenflaeche.


gibLeinwand

public static Leinwand gibLeinwand()
Gib die einzige verfuegbare Leinwand zurueck (also den "leinwandSingleton"). Wenn die Leinwand noch nicht erzeugt ist, erzeuge sie mit Defaultwerten fuer Titel, Breite, Hoehe und Grundfarbe.


loescheAlsBeobachter

public void loescheAlsBeobachter(LeinwandBeobachter b)
Loesche einen Leinwandbeobachter.

Parameters:
b - Der Leinwandbeobachter.

radiere

public void radiere(java.lang.Object text)
Radiere den gegebenen Text von der Leinwand.

Parameters:
text - der Text, dessen Zeichenkette entfernt werden soll

schreibe

public void schreibe(java.lang.Object text,
                     java.awt.Color farbe,
                     java.lang.String zeichenkette,
                     int x,
                     int y,
                     int groesse)
Schreibe fuer das gegebene Text-Objekt eine Zeichenkette (einen String) auf die Leinwand.

Parameters:
text - das Text-Objekt, fuer das ein String geschrieben werden soll
farbe - die Farbe des Textes
zeichenkette - ein Objekt der Klasse String, das tatsaechlich geschrieben wird
x - x-Koordinate des Textes
y - y-Koordinate des Textes
groesse - Schriftgroesse des Textes

setzeSichtbarkeit

public void setzeSichtbarkeit(boolean sichtbar)
Setze, ob diese Leinwand sichtbar sein soll oder nicht. Wenn die Leinwand sichtbar gemacht wird, wird ihr Fenster in den Vordergrund geholt. Diese Operation kann auch benutzt werden, um ein bereits sichtbares Leinwandfenster in den Vordergrund (vor andere Fenster) zu holen.

Parameters:
sichtbar - boolean fuer die gewuenschte Sichtbarkeit: true fuer sichtbar, false fuer nicht sichtbar.

setzeZeichenfarbe

public void setzeZeichenfarbe(java.awt.Paint farbe)
Setze die Zeichenfarbe der Leinwand.

Parameters:
farbe - die neue Zeichenfarbe.

speichereAlsBeobachter

public void speichereAlsBeobachter(LeinwandBeobachter b)
Speichere einen Leinwandbeobachter.

Parameters:
b - Der Leinwandbeobachter.

tastendruck

public java.awt.event.KeyEvent tastendruck()
Gib den letzten, noch nicht verarbeiteten Tastendruck zurueck, den die Leinwand empfangen hat. Falls kein Tastendruck vorkam, wird null zurueckgegeben.


warte

public void warte(int millisekunden)
Warte fuer die angegebenen Millisekunden. Mit dieser Operation wird eine Verzoegerung definiert, die fuer animierte Zeichnungen benutzt werden kann.

Parameters:
millisekunden - die zu wartenden Millisekunden

zeichne

public void zeichne(java.lang.Object figur,
                    java.awt.Paint farbe,
                    java.awt.Shape shape)
Zeichne fuer das gegebene Figur-Objekt eine Java-Figur (einen Shape) auf die Leinwand.

Parameters:
figur - das Figur-Objekt, fuer das ein Shape gezeichnet werden soll
farbe - die Farbe der Figur
shape - ein Objekt der Klasse Shape, das tatsaechlich gezeichnet wird