Class Interaktionsbrett

java.lang.Object
  extended by Interaktionsbrett

public class Interaktionsbrett
extends java.lang.Object

Klasse zur einfachen Darstellung elementarer graphischer Elemente (Punkt, Linie, Rechteck, Kreis), die auf einer graphischen Fläche angezeigt werden. Neben der reinen Anzeige gibt es Möglichkeiten, die Elemente mit der Maus verschiebbar zu machen und bearbeitbar zu machen. Die zugehörigen Methoden haben zwei Parameter ein Objekt, das bei einer Änderung informiert werden soll, und ein String, mit dem es möglich ist Objekte zu unterscheiden. Wird ein graphisches Element mit diesen beiden Parametern an ein Interaktionsbrett übergeben, können mit der Nutzung dieser Parameter die Elemente verschoben und gelöscht werden.
Will man die Maussteuerungsmöglichkeiten nutzen, muss das mit dem graphischen Element übergebene Objekt eine oder mehrere der folgenden Methoden implementieren, die dann vom Interaktionsbrett bei einer Mausaktion aufgerufen werden.

Objekte können dem Interaktionsbrett mitteilen, dass sie über gedrückte Tasten informiert werden wollen. Hierzu dient die Methode willTasteninfo(). Das zu informierende Objekt muss dann eine Methode der folgenden Form realisieren:
public void tasteGedrueckt(String s)


Weiterhin bieten Objekte der Klasse ein einfaches Stoppuhr- Objekt, das gestartet und gestoppt werden kann.


Nested Class Summary
(package private)  class Interaktionsbrett.Geo
           
(package private)  class Interaktionsbrett.Kreis
           
(package private)  class Interaktionsbrett.Linie
           
(package private)  class Interaktionsbrett.MalFlaeche
           
(package private)  class Interaktionsbrett.Paar
           
(package private)  class Interaktionsbrett.Punkt
           
(package private)  class Interaktionsbrett.Rechteck
           
(package private)  class Interaktionsbrett.Text
           
(package private)  class Interaktionsbrett.Uhr
           
 
Constructor Summary
Interaktionsbrett()
          Konstruktor zum Erzeugen eines Interaktionsbretts.
 
Method Summary
 void abwischen()
          Methode mit der im wesentlichen der Urzustand des Interaktionsbretts wieder hergestellt wird.
 int leseUhr()
          Methode zum Ablesen der bisher seit dem Start verbrauchten Zeit.
 void loescheObjekt(java.lang.Object quelle, java.lang.String name)
          Ein mit den Parametern quelle und name vorher erzeugtes graphisches Element wird gelöscht.
 void neueLinie(int x1, int y1, int x2, int y2)
          Methode zum Zeichnen einer neuen Linie.
 void neueLinie(java.lang.Object quelle, java.lang.String name, int x1, int y1, int x2, int y2)
          Methode zum Zeichnen einer neuen Linie, die verändert und deren Nutzung mit der Maus beobachtet werden kann.
 void neuerKreis(int x, int y, int radius)
          Methode zum Zeichnen eines neuen Kreises.
 void neuerKreis(java.lang.Object quelle, java.lang.String name, int x, int y, int radius)
          Methode zum Zeichnen eines neuen Kreises, der verändert und dessen Nutzung beobachtet werden kann.
 void neuerPunkt(int x, int y)
          Methode zum Zeichnen eines neuen Punktes.
 void neuerPunkt(java.lang.Object quelle, java.lang.String name, int x, int y)
          Methode zum Zeichnen eines neuen Punktes, der verändert und dessen Nutzung beobachtet werden kann.
 void neuerText(int x, int y, java.lang.String text)
          Methode zur Ausgabe eines Textes.
 void neuerText(java.lang.Object quelle, java.lang.String name, int x, int y, java.lang.String text)
          Methode zum Zeichnen eines neuen Textes, der verändert und dessen Nutzung beobachtet werden kann.
 void neuesRechteck(int x, int y, int breite, int hoehe)
          Methode zum Zeichnen eines neuen Rechtecks.
 void neuesRechteck(java.lang.Object quelle, java.lang.String name, int x, int y, int breite, int hoehe)
          Methode zum Zeichnen eines neuen Rechtecks, das verändert und dessen Nutzung beobachtet werden kann.
 void pause(int milli)
          Methode, um Bearbeitung für eine kurze in Millisekunden angegebene Zeit anzuhalten.
 void starteUhr()
          Methode zum Starten der eingeblendeten Stoppuhr.
 int stoppeUhr()
          Methode zum Stoppen der Stoppuhr.
 int textlaenge(java.lang.String text)
          Berechnet die Länge eines Textes für eine mögliche graphische Ausgabe.
 void textZeigen(java.lang.String text)
          Methode zur Änderung des in der Fußzeile angezeigten Textes.
 void verschiebeObjektNach(java.lang.Object quelle, java.lang.String name, int x, int y)
          Ein mit den Parametern quelle und name vorher erzeugtes graphisches Element wird auf eine neue Position gesetzt.
 void willTasteninfo(java.lang.Object o)
          Objekte können an ein Interaktionsbrett so übergeben werden, dass sie informiert werden, wenn eine Taste gedrückt wurde.
 int zufall(int start, int ende)
          Methode zur Erzeugung einer ganzahligen Zufallszahl zwischen (einschließlich) den übergebenen Grenzen.
 
Methods inherited from class
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Interaktionsbrett

public Interaktionsbrett()
Konstruktor zum Erzeugen eines Interaktionsbretts. Das Brett wird sofort nach der Erstellung angezeigt.

Method Detail

abwischen

public void abwischen()
Methode mit der im wesentlichen der Urzustand des Interaktionsbretts wieder hergestellt wird. Alle graphischen Elemente werden gelöscht und Einstellungen zurückgesetzt. Die Methode soll nicht zum Verschieben von Objekten durch Löschen und Neuzeichnen genutzt werden, da hier Fehler auftreten können. Hierzu ist die Methode verschiebeObjektNach(.,.) zu nutzen.


leseUhr

public int leseUhr()
Methode zum Ablesen der bisher seit dem Start verbrauchten Zeit.

Returns:
Zeit in Millisekunden, die seit dem letzten Aufruf von starteUhr() vergangen ist

loescheObjekt

public void loescheObjekt(java.lang.Object quelle,
                          java.lang.String name)
Ein mit den Parametern quelle und name vorher erzeugtes graphisches Element wird gelöscht.

Parameters:
quelle - Objekt, das zusammen mit einem zu erzeugenden graphischen Element übergeben wurde
name - identifizierender Text, der zusammen mit einem zu erzeugenden graphischen Element übergeben wurde. Das Paar (quelle, name) soll ein vorher erzeugtes graphisches Element eindeutig identifizieren.

neueLinie

public void neueLinie(int x1,
                      int y1,
                      int x2,
                      int y2)
Methode zum Zeichnen einer neuen Linie. Die Linie kann später nicht mehr gelöscht werden. Die Linie verbindet zwei Punkte, die als Parameter jeweils mit x- und y-Wert übergeben werden.

Parameters:
x1 - x-Koordinate des ersten Punkts der Linie
y1 - y-Koordinate des ersten Punkts der Linie
x2 - x-Koordinate des zweiten Punkts der Linie
y2 - y-Koordinate des zweiten Punkts der Linie

neueLinie

public void neueLinie(java.lang.Object quelle,
                      java.lang.String name,
                      int x1,
                      int y1,
                      int x2,
                      int y2)
Methode zum Zeichnen einer neuen Linie, die verändert und deren Nutzung mit der Maus beobachtet werden kann. Die Linie kann später beliebig bearbeitet werden, wie es in der Beschreibung der Klasse Interaktionsbrett gezeigt wird.

Parameters:
quelle - Objekt, das informiert werden soll, falls diese Linie bearbeitet wird (häufig wird this übergeben).
name - Name des Objekts, der zusätzlich mit an das zu informierende Objekt übergeben wird. Das Paar (quelle,name) sollte eindeutig sein.
x1 - x-Koordinate des ersten Punkts der Linie
y1 - y-Koordinate des ersten Punkts der Linie
x2 - x-Koordinate des zweiten Punkts der Linie
y2 - y-Koordinate des zweiten Punkts der Linie

neuerKreis

public void neuerKreis(int x,
                       int y,
                       int radius)
Methode zum Zeichnen eines neuen Kreises. Der Kreis kann später nicht mehr gelöscht werden.

Parameters:
x - x-Koordinate des Mittelpunkt des Kreises
y - y-Koordinate des Mittelpunkt des Kreises
radius - Radius des Kreises

neuerKreis

public void neuerKreis(java.lang.Object quelle,
                       java.lang.String name,
                       int x,
                       int y,
                       int radius)
Methode zum Zeichnen eines neuen Kreises, der verändert und dessen Nutzung beobachtet werden kann. Der Kreis kann später beliebig bearbeitet werden, wie es in der Beschreibung der Klasse Interaktionsbrett gezeigt wird.

Parameters:
quelle - Objekt, das informiert werden soll, falls dieser Kreis bearbeitet wird (häufig wird this übergeben).
name - Name des Objekts, der zusätzlich mit an das zu informierende Objekt übergeben wird. Das Paar (quelle,name) sollte eindeutig sein.
x - x-Koordinate des Mittelpunkt des Kreises
y - y-Koordinate des Mittelpunkt des Kreises
radius - Radius des Kreises

neuerPunkt

public void neuerPunkt(int x,
                       int y)
Methode zum Zeichnen eines neuen Punktes. Der Punkt kann später nicht mehr gelöscht werden.

Parameters:
x - x-Koordinate des Punktes (beginnend von links nach rechts)
y - y-Koordinate des Punktes (beginnend von oben nach unten)

neuerPunkt

public void neuerPunkt(java.lang.Object quelle,
                       java.lang.String name,
                       int x,
                       int y)
Methode zum Zeichnen eines neuen Punktes, der verändert und dessen Nutzung beobachtet werden kann. Der Punkt kann später beliebig bearbeitet werden, wie es in der Beschreibung der Klasse Interaktionsbrett gezeigt wird.

Parameters:
quelle - Objekt, das informiert werden soll, falls dieser Punkt bearbeitet wird (häufig wird this übergeben).
name - Name des Objekts, der zusätzlich mit an das zu informierende Objekt übergeben wird. Das Paar (quelle,name) sollte eindeutig sein.
x - x-Koordinate des Punktes (beginnend von links nach rechts)
y - y-Koordinate des Punktes (beginnend von oben nach unten)

neuerText

public void neuerText(int x,
                      int y,
                      java.lang.String text)
Methode zur Ausgabe eines Textes. Der als Parameter mit x- und y-Wert übergebene Punkt legt in x-Richtung die Basislinie des Textes fest. Alle Buchstaben ohne Unterlänge (z. B. A, a, b, x) werden oberhalb der Linie dargestellt. Buchstaben mit Unterlänge (z. B. p, q, y) durchstoßen diese Linie nach unten.

Parameters:
x - x-Koordinate des Startpunkts des Textes
y - x-Koordinate des Startpunkts des Textes, legt auch die Basislinie des Textes fest
text - auszugebender Text

neuerText

public void neuerText(java.lang.Object quelle,
                      java.lang.String name,
                      int x,
                      int y,
                      java.lang.String text)
Methode zum Zeichnen eines neuen Textes, der verändert und dessen Nutzung beobachtet werden kann. Der Text kann später beliebig bearbeitet werden, wie es in der Beschreibung der Klasse Interaktionsbrett gezeigt wird. Der als Parameter mit x- und y-Wert übergebene Punkt legt in x-Richtung die Basislinie des Textes fest. Alle Buchstaben ohne Unterlänge (z. B. A, a, b, x) werden oberhalb der Linie dargestellt. Buchstaben mit Unterlänge (z. B. p, q, y) durchstoßen diese Linie nach unten.

Parameters:
quelle - Objekt, das informiert werden soll, falls dieser Text bearbeitet wird (häufig wird this übergeben).
name - Name des Objekts, der zusätzlich mit an das zu informierende Objekt übergeben wird. Das Paar (quelle,name) sollte eindeutig sein.
x - x-Koordinate des Startpunkts des Textes
y - y-Koordinate des Startpunkts des Textes, legt auch die Basislinie des Textes fest
text - auszugebender Text

neuesRechteck

public void neuesRechteck(int x,
                          int y,
                          int breite,
                          int hoehe)
Methode zum Zeichnen eines neuen Rechtecks. Das Rechteck kann später nicht mehr gelöscht werden.

Parameters:
x - x-Koordinate der linken oberen Ecke des Rechtecks
y - y-Koordinate der linken oberen Ecke des Rechtecks
breite - Breite des Rechtecks (in Richtung x-Achse)
hoehe - Höhe des Rechtecks (in Richtung y-Achse)

neuesRechteck

public void neuesRechteck(java.lang.Object quelle,
                          java.lang.String name,
                          int x,
                          int y,
                          int breite,
                          int hoehe)
Methode zum Zeichnen eines neuen Rechtecks, das verändert und dessen Nutzung beobachtet werden kann. Das Rechteck kann später beliebig bearbeitet werden, wie es in der Beschreibung der Klasse Interaktionsbrett gezeigt wird.

Parameters:
quelle - Objekt, das informiert werden soll, falls dieses Rechteck bearbeitet wird (häufig wird this übergeben).
name - Name des Objekts, der zusätzlich mit an das zu informierende Objekt übergeben wird. Das Paar (quelle,name) sollte eindeutig sein.
x - x-Koordinate der linken oberen Ecke des Rechtecks
y - y-Koordinate der linken oberen Ecke des Rechtecks
breite - Breite des Rechtecks (in Richtung x-Achse)
hoehe - Höhe des Rechtecks (in Richtung y-Achse)

pause

public void pause(int milli)
Methode, um Bearbeitung für eine kurze in Millisekunden angegebene Zeit anzuhalten.

Parameters:
milli - Zeit in Millisekunden, die der Programmablauf mindestens angehalten werden soll

starteUhr

public void starteUhr()
Methode zum Starten der eingeblendeten Stoppuhr.


stoppeUhr

public int stoppeUhr()
Methode zum Stoppen der Stoppuhr.

Returns:
gemessener Wert in Millisekunden

textlaenge

public int textlaenge(java.lang.String text)
Berechnet die Länge eines Textes für eine mögliche graphische Ausgabe. Sollte man z. B. Textumrandungen basteln, ist zu beachten, dass Rand an beiden Seiten hinzugefügt wird.

Parameters:
text - Text dessen Ausgabelänge in Pixel bestimmt werden soll
Returns:
Länge des übergebenen Textes in Pixel

textZeigen

public void textZeigen(java.lang.String text)
Methode zur Änderung des in der Fußzeile angezeigten Textes.

Parameters:
text - neuer anzuzeigender Text

verschiebeObjektNach

public void verschiebeObjektNach(java.lang.Object quelle,
                                 java.lang.String name,
                                 int x,
                                 int y)
Ein mit den Parametern quelle und name vorher erzeugtes graphisches Element wird auf eine neue Position gesetzt.

Parameters:
quelle - Objekt, das zusammen mit einem zu erzeugenden graphischen Element übergeben wurde
name - identifizierender Text, der zusammen mit einem zu erzeugenden graphischen Element übergeben wurde. Das Paar (quelle name) soll ein vorher erzeugtes graphisches Element eindeutig identifizieren.
x - neue x-Koordniate des graphischen Elements
y - neue y-Koordniate des graphischen Elements

willTasteninfo

public void willTasteninfo(java.lang.Object o)
Objekte können an ein Interaktionsbrett so übergeben werden, dass sie informiert werden, wenn eine Taste gedrückt wurde. Das Objekt muss dazu eine Methode der Form
public void tasteGedrueckt(String s)
realisieren, wobei die gedrückte Taste dann im übergebenen String steht. Neben den üblichen Zeichen sind auch folgende Texte möglich:
"F1"-"F12" für die Funktionstasten (man beachte eventuelle Probleme, wenn die Tasten von anderen Programmen belegt sind.
"Eingabe" für die Eingabe- oder Return-Taste (auch Enter-Taste)
"Strg" für eine der Strg-Tasten (auch CTRL-Tasten genannt)
"Rücktaste" für die Rückwärtstaste (Backspace)
"Einfg" für die Einfg-Taste (Einfügen)
"Pos 1" für die Pos1-Taste
"Ende" für die Ende-Taste
"Bild auf" für die Bild nach oben-Taste
"Bild ab" für die Bild nach unten-Taste
"ESC" für die Escape-Taste (ESC-Taste)
"Pause" für die Pause-Taste
"Links" für die Pfeiltaste nach links
"Rechts" für die Pfeiltaste nach rechts
"Oben" für die Pfeiltaste nach oben
"Unten" für die Pfeiltaste nach unten

Von der Verwendung der Tabulator-, Windows- und Alt-Tasten wird abgeraten, da sie u. a. Nebeneffekte im Programm haben können.

Parameters:
o - Objekt, dass informiert werden möchte, wenn im Interaktionsbrett eine Taste gedrückt wurde

zufall

public int zufall(int start,
                  int ende)
Methode zur Erzeugung einer ganzahligen Zufallszahl zwischen (einschließlich) den übergebenen Grenzen. Es wird erwartet und nicht geprüft, dass der Endwert nicht kleiner als der Startwert ist.

Parameters:
start - minimal möglicher Zufallswert
ende - maximal möglicher Zufallswert
Returns:
zufälliger Wert zwischen start und ende (auch diese beiden Werte sind möglich