All Packages Class Hierarchy This Package Previous Next Index
Class stiftUndCo.Bildschirm
java.lang.Object
|
+----java.awt.Component
|
+----java.awt.Container
|
+----java.awt.Window
|
+----java.awt.Frame
|
+----stiftUndCo.Bildschirm
- public class Bildschirm
- extends Frame
- implements MalFenster, WindowListener, ComponentListener
Ein Bildschirm ist das Modell eines rechteckigen Bereiches auf dem
angeschlossenen Computerbildschirm.
Auf ihm kann mit Stiften gezeichnet werden. Zu diesem Zweck ist die
Zeichenebene auf dem Bildschirm mit einem Koordinatensystem versehen,
dessen Ursprung sich in der oberen linken Ecke der Zeichenebene befindet
und dessen Achsen horizontal nach rechts und vertikal nach unten
gerichtet sind. Die Einheit ist ein Pixel.
Die Implementierung enthält einige Zusätze zum Standard der Stifte und Mäuse,
etwa die Möglichkeit für double-buffering.
-
andereEreignisseErwünscht
-
-
andereEreignisseInitialisiert
-
-
grafikKontext
-
-
hggrafikkontext
-
-
hintergrundbild
-
-
laufeAlsApplet
-
-
meineEreignisAnwendung
-
-
zhintergrundmodus
-
-
Bildschirm()
- Konstruktor Bildschirm
nachher: Der Bildschirm ist initialisiert.
-
Bildschirm(int, int)
- Konstruktor Bildschirm
nachher: Der Bildschirm ist initialisiert.
-
Bildschirm(int, int, String)
- Konstruktor Bildschirm
nachher: Der Bildschirm ist initialisiert.
-
addAndereEreignisseListener(EreignisAnwendung)
-
-
addNotify()
- Macht einen Grafikkontext für dieses Fenster dauerhaft(!) verfügbar.
-
aktualisiere()
- Das Hintergrundbild wird angezeigt
-
aktuellerGrafikkontext()
- stellt einen Grafikkontext für Malwerkzeuge, wie den Stift,
zur Verfügung.
-
bearbeiteAndereEreignisse()
-
-
bearbeiteFensterverändert()
- paßt den Fensterinhalt an, wenn das Fenster bewegt wurde
oder die Größe sich geändert hat.
-
breite()
- Anfrage breite() liefert die Breite der Zeichenebene.
-
componentHidden(ComponentEvent)
-
-
componentMoved(ComponentEvent)
-
-
componentResized(ComponentEvent)
-
-
componentShown(ComponentEvent)
-
-
g()
-
-
gibFrei()
- das Fenster wird abgebaut
-
hintergrundFarbe()
- Anfrage hintergrundFarbe() liefert die Farbe des Hintergrundes
-
hintergrundmodus()
- liefert den Wert wahr, wenn double-buffering benutzt wird
-
hoehe()
- Anfrage hoehe() liefert die Höhe der Zeichenebene.
-
info(String)
-
-
init()
-
-
laeuftInApplet()
-
-
loescheAlles()
- Auftrag loescheAlles()
nachher: Die Zeichenebene ist leer.
-
processEvent(AWTEvent)
- Um andere Ereignisse als die Standardereignisse zu bearbeiten, wird
in die Systemereignisschlange ein neues Ereignis eingefügt.
-
removeNotify()
- Beim Abbau des Fensters wird der Grafikkontext wieder freigegeben
-
setzeHintergrundFarbe(Color)
- Auftrag setzeHintergrundFarbe(Color c)
nachher Der Bildschirm hat die angegebene Hintergrundfarbe
-
setzeHintergrundmodus(boolean)
- Schaltet double-Buffering ein oder aus.
-
setzeTitel(String)
- erzeugt einen Fenstertitel
-
update(Graphics)
-
-
windowActivated(WindowEvent)
-
-
windowClosed(WindowEvent)
-
-
windowClosing(WindowEvent)
-
-
windowDeactivated(WindowEvent)
-
-
windowDeiconified(WindowEvent)
-
-
windowIconified(WindowEvent)
-
-
windowOpened(WindowEvent)
-
grafikKontext
protected Graphics grafikKontext
hggrafikkontext
protected Graphics hggrafikkontext
hintergrundbild
protected Image hintergrundbild
zhintergrundmodus
protected boolean zhintergrundmodus
meineEreignisAnwendung
protected EreignisAnwendung meineEreignisAnwendung
andereEreignisseInitialisiert
protected boolean andereEreignisseInitialisiert
andereEreignisseErwünscht
protected boolean andereEreignisseErwünscht
laufeAlsApplet
protected boolean laufeAlsApplet
Bildschirm
public Bildschirm()
- Konstruktor Bildschirm
nachher: Der Bildschirm ist initialisiert. Breite 400, Hoehe 300 Pixel
Bildschirm
public Bildschirm(int breite,
int hoehe)
- Konstruktor Bildschirm
nachher: Der Bildschirm ist initialisiert.
- Parameters:
- breite - bestimmt die Breite des Bildschirms
- hoehe - bestimmt die Hoehe des Bildschirms
Bildschirm
public Bildschirm(int breite,
int hoehe,
String titel)
- Konstruktor Bildschirm
nachher: Der Bildschirm ist initialisiert.
- Parameters:
- breite - bestimmt die Breite des Bildschirms
- hoehe - bestimmt die Hoehe des Bildschirms
- titel - bestimmt den Fenstertitel
init
public void init()
laeuftInApplet
protected boolean laeuftInApplet()
bearbeiteAndereEreignisse
protected void bearbeiteAndereEreignisse()
addAndereEreignisseListener
protected void addAndereEreignisseListener(EreignisAnwendung ea)
processEvent
protected void processEvent(AWTEvent e)
- Um andere Ereignisse als die Standardereignisse zu bearbeiten, wird
in die Systemereignisschlange ein neues Ereignis eingefügt. Dessen Bearbeitung
zieht den Aufruf von BearbeiteAndereEreignisse nach sich und ein erneutes
Einfügen eines Ereignisses in die Ereignisschlange, so dass dieser Vorgang wiederholt wird.
Ein eleganterer Weg, direkt per dispatchEvent auf ein "andéres Ereignis"
zu reagieren, führt zu unschönen Nebeneffekten, insbeondere Netscape
bearbeitet dann nur noch andere Ereignisse. Offenbar werden diese von der verwendeten VM vorne in die
Ereignisschlange eingereiht und nicht hinten.
Ein alternativer Ansatz läuft über Threads: Dazu starte man einen Thread der in kurzen Abständen
bearbeiteAndereEreignisse aufruft.
Diesen Ansatz habe ich wieder verworfen, da die Antwortzeiten zu lange sind.
Für Applets ist er jedoch möglich.
Noch eleganter wäre es, wenn man weitere Ereignisse dem Java-Event-Delegation-
Modell entsprechend einfügen würde.
Ein Problem stellen allerdings Applets dar:
Der Zugriff auf die System Ereignisschlange ist aus Sicherheitsgründen
nicht gestattet.
- Overrides:
- processEvent in class Window
info
public void info(String s)
addNotify
public synchronized void addNotify()
- Macht einen Grafikkontext für dieses Fenster dauerhaft(!) verfügbar.
Auch außerhalb von paint!
- Overrides:
- addNotify in class Frame
aktualisiere
public void aktualisiere()
- Das Hintergrundbild wird angezeigt
- See Also:
- setzeHintergrundmodus
aktuellerGrafikkontext
public Graphics aktuellerGrafikkontext()
- stellt einen Grafikkontext für Malwerkzeuge, wie den Stift,
zur Verfügung.
hintergrundmodus
public boolean hintergrundmodus()
- liefert den Wert wahr, wenn double-buffering benutzt wird
componentShown
public void componentShown(ComponentEvent e)
componentResized
public void componentResized(ComponentEvent e)
componentHidden
public void componentHidden(ComponentEvent e)
componentMoved
public void componentMoved(ComponentEvent e)
windowActivated
public void windowActivated(WindowEvent e)
windowClosed
public void windowClosed(WindowEvent e)
windowDeactivated
public void windowDeactivated(WindowEvent e)
windowDeiconified
public void windowDeiconified(WindowEvent e)
windowIconified
public void windowIconified(WindowEvent e)
windowOpened
public void windowOpened(WindowEvent e)
windowClosing
public void windowClosing(WindowEvent e)
bearbeiteFensterverändert
public void bearbeiteFensterverändert()
- paßt den Fensterinhalt an, wenn das Fenster bewegt wurde
oder die Größe sich geändert hat. Die Methode ist noch nicht
"fertig".
breite
public int breite()
- Anfrage breite() liefert die Breite der Zeichenebene.
g
protected Graphics g()
gibFrei
public void gibFrei()
- das Fenster wird abgebaut
hintergrundFarbe
public Color hintergrundFarbe()
- Anfrage hintergrundFarbe() liefert die Farbe des Hintergrundes
hoehe
public int hoehe()
- Anfrage hoehe() liefert die Höhe der Zeichenebene.
loescheAlles
public void loescheAlles()
- Auftrag loescheAlles()
nachher: Die Zeichenebene ist leer.
removeNotify
public synchronized void removeNotify()
- Beim Abbau des Fensters wird der Grafikkontext wieder freigegeben
- Overrides:
- removeNotify in class Container
setzeHintergrundFarbe
public synchronized void setzeHintergrundFarbe(Color c)
- Auftrag setzeHintergrundFarbe(Color c)
nachher Der Bildschirm hat die angegebene Hintergrundfarbe
setzeHintergrundmodus
public void setzeHintergrundmodus(boolean ein)
- Schaltet double-Buffering ein oder aus. Bei eingeschaltetem
Hintergrundmodus werden alle Zeichenoperationen unsichtbar
auf ein Hintergrundbild angewendet.
Sie werden erst sichtbar, wenn der Bildschirm aktualisiert wird.
- See Also:
- aktualisiere
setzeTitel
public void setzeTitel(String titel)
- erzeugt einen Fenstertitel
update
public void update(Graphics g)
- Overrides:
- update in class Container
All Packages Class Hierarchy This Package Previous Next Index