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.


Variable Index

 o andereEreignisseErwünscht
 o andereEreignisseInitialisiert
 o grafikKontext
 o hggrafikkontext
 o hintergrundbild
 o laufeAlsApplet
 o meineEreignisAnwendung
 o zhintergrundmodus

Constructor Index

 o Bildschirm()
Konstruktor Bildschirm
nachher: Der Bildschirm ist initialisiert.
 o Bildschirm(int, int)
Konstruktor Bildschirm
nachher: Der Bildschirm ist initialisiert.
 o Bildschirm(int, int, String)
Konstruktor Bildschirm
nachher: Der Bildschirm ist initialisiert.

Method Index

 o addAndereEreignisseListener(EreignisAnwendung)
 o addNotify()
Macht einen Grafikkontext für dieses Fenster dauerhaft(!) verfügbar.
 o aktualisiere()
Das Hintergrundbild wird angezeigt
 o aktuellerGrafikkontext()
stellt einen Grafikkontext für Malwerkzeuge, wie den Stift, zur Verfügung.
 o bearbeiteAndereEreignisse()
 o bearbeiteFensterverändert()
paßt den Fensterinhalt an, wenn das Fenster bewegt wurde oder die Größe sich geändert hat.
 o breite()
Anfrage breite() liefert die Breite der Zeichenebene.
 o componentHidden(ComponentEvent)
 o componentMoved(ComponentEvent)
 o componentResized(ComponentEvent)
 o componentShown(ComponentEvent)
 o g()
 o gibFrei()
das Fenster wird abgebaut
 o hintergrundFarbe()
Anfrage hintergrundFarbe() liefert die Farbe des Hintergrundes
 o hintergrundmodus()
liefert den Wert wahr, wenn double-buffering benutzt wird
 o hoehe()
Anfrage hoehe() liefert die Höhe der Zeichenebene.
 o info(String)
 o init()
 o laeuftInApplet()
 o loescheAlles()
Auftrag loescheAlles()
nachher: Die Zeichenebene ist leer.
 o processEvent(AWTEvent)
Um andere Ereignisse als die Standardereignisse zu bearbeiten, wird in die Systemereignisschlange ein neues Ereignis eingefügt.
 o removeNotify()
Beim Abbau des Fensters wird der Grafikkontext wieder freigegeben
 o setzeHintergrundFarbe(Color)
Auftrag setzeHintergrundFarbe(Color c)
nachher Der Bildschirm hat die angegebene Hintergrundfarbe
 o setzeHintergrundmodus(boolean)
Schaltet double-Buffering ein oder aus.
 o setzeTitel(String)
erzeugt einen Fenstertitel
 o update(Graphics)
 o windowActivated(WindowEvent)
 o windowClosed(WindowEvent)
 o windowClosing(WindowEvent)
 o windowDeactivated(WindowEvent)
 o windowDeiconified(WindowEvent)
 o windowIconified(WindowEvent)
 o windowOpened(WindowEvent)

Variables

 o grafikKontext
 protected Graphics grafikKontext
 o hggrafikkontext
 protected Graphics hggrafikkontext
 o hintergrundbild
 protected Image hintergrundbild
 o zhintergrundmodus
 protected boolean zhintergrundmodus
 o meineEreignisAnwendung
 protected EreignisAnwendung meineEreignisAnwendung
 o andereEreignisseInitialisiert
 protected boolean andereEreignisseInitialisiert
 o andereEreignisseErwünscht
 protected boolean andereEreignisseErwünscht
 o laufeAlsApplet
 protected boolean laufeAlsApplet

Constructors

 o Bildschirm
 public Bildschirm()
Konstruktor Bildschirm
nachher: Der Bildschirm ist initialisiert. Breite 400, Hoehe 300 Pixel

 o 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
 o 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

Methods

 o init
 public void init()
 o laeuftInApplet
 protected boolean laeuftInApplet()
 o bearbeiteAndereEreignisse
 protected void bearbeiteAndereEreignisse()
 o addAndereEreignisseListener
 protected void addAndereEreignisseListener(EreignisAnwendung ea)
 o 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
 o info
 public void info(String s)
 o 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
 o aktualisiere
 public void aktualisiere()
Das Hintergrundbild wird angezeigt

See Also:
setzeHintergrundmodus
 o aktuellerGrafikkontext
 public Graphics aktuellerGrafikkontext()
stellt einen Grafikkontext für Malwerkzeuge, wie den Stift, zur Verfügung.

 o hintergrundmodus
 public boolean hintergrundmodus()
liefert den Wert wahr, wenn double-buffering benutzt wird

 o componentShown
 public void componentShown(ComponentEvent e)
 o componentResized
 public void componentResized(ComponentEvent e)
 o componentHidden
 public void componentHidden(ComponentEvent e)
 o componentMoved
 public void componentMoved(ComponentEvent e)
 o windowActivated
 public void windowActivated(WindowEvent e)
 o windowClosed
 public void windowClosed(WindowEvent e)
 o windowDeactivated
 public void windowDeactivated(WindowEvent e)
 o windowDeiconified
 public void windowDeiconified(WindowEvent e)
 o windowIconified
 public void windowIconified(WindowEvent e)
 o windowOpened
 public void windowOpened(WindowEvent e)
 o windowClosing
 public void windowClosing(WindowEvent e)
 o 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".

 o breite
 public int breite()
Anfrage breite() liefert die Breite der Zeichenebene.

 o g
 protected Graphics g()
 o gibFrei
 public void gibFrei()
das Fenster wird abgebaut

 o hintergrundFarbe
 public Color hintergrundFarbe()
Anfrage hintergrundFarbe() liefert die Farbe des Hintergrundes

 o hoehe
 public int hoehe()
Anfrage hoehe() liefert die Höhe der Zeichenebene.

 o loescheAlles
 public void loescheAlles()
Auftrag loescheAlles()
nachher: Die Zeichenebene ist leer.

 o removeNotify
 public synchronized void removeNotify()
Beim Abbau des Fensters wird der Grafikkontext wieder freigegeben

Overrides:
removeNotify in class Container
 o setzeHintergrundFarbe
 public synchronized void setzeHintergrundFarbe(Color c)
Auftrag setzeHintergrundFarbe(Color c)
nachher Der Bildschirm hat die angegebene Hintergrundfarbe

 o 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
 o setzeTitel
 public void setzeTitel(String titel)
erzeugt einen Fenstertitel

 o update
 public void update(Graphics g)
Overrides:
update in class Container

All Packages  Class Hierarchy  This Package  Previous  Next  Index