Class Interaktionsbrett
java.lang.Object
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.
Weiterhin bieten Objekte der Klasse ein einfaches Stoppuhr- Objekt, das gestartet und gestoppt werden kann.
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.
-
public Boolean mitMausVerschoben(String name, int x, int y)
Das Objekt wird informiert, dass ein graphisches Element mit Namen name an die Position (x,y) verschoben wurde, die zugehörige Mausbewegung ist beendet. Mit dem Rückgabewert kann man mitteilen, ob die Verschiebung überhaupt gewünscht ist (true) oder nicht (false). -
public Boolean mitMausAngeklickt(String name, int x, int y)
Das Objekt wird informiert, dass ein graphisches Element mit Namen name an der Position (x,y) gerade angeklickt wurde, die zugehörige Mausbewegung beginnt gerade. Mit dem Rückgabewert kann man mitteilen, ob eine Bearbeitung (konkret eine Verschiebung) überhaupt gewünscht ist (true) oder nicht (false). -
public Boolean mitMausLosgelassen(String name, int x, int y)
Das Objekt wird informiert, dass ein graphisches Element mit Namen name gerade an die Position (x,y) verschoben und an dieser Position losgelassen wurde, die zugehörige Mausbewegung endet gerade. Mit dem Rückgabewert kann man mitteilen, ob das Ablegen des Elements an dieser Stelle überhaupt gewünscht ist (true) oder nicht (false). Der sicherlich selten genutzte Fall false hat nur Auswirkungen, wenn der Nutzer zum nächsten Zeitpunkt auf eine Stelle klickt, an der sich kein auswählbares graphisches Element befinde. Dann wird das zuletzt benutzte Element genutzt und z. B. wieder verschoben.
willTasteninfo(<zuInformierendesObjekt>)
. 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.
-
Constructor Summary
Constructors Constructor Description Interaktionsbrett()
Konstruktor zum Erzeugen eines Interaktionsbretts. -
Method Summary
Modifier and Type Method Description void
abwischen()
Methode zum Löschen der gezeichneten Elemente, dazu werden auch alle Verbindungen und Referenzen, die zu Objekten bestehen, gelöscht.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.void
zuruecksetzen()
Methode mit der im wesentlichen der Urzustand des Interaktionsbretts wieder hergestellt wird.Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Constructor Details
-
Interaktionsbrett
public Interaktionsbrett()Konstruktor zum Erzeugen eines Interaktionsbretts. Das Brett wird sofort nach der Erstellung angezeigt.
-
-
Method Details
-
starteUhr
public void starteUhr()Methode zum Starten der eingeblendeten Stoppuhr. -
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
-
stoppeUhr
public int stoppeUhr()Methode zum Stoppen der Stoppuhr.- Returns:
- gemessener Wert in Millisekunden
-
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
-
textZeigen
public void textZeigen(java.lang.String text)Methode zur Änderung des in der Fußzeile angezeigten Textes.- Parameters:
text
- neuer anzuzeigender Text
-
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 Zufallswertende
- maximal möglicher Zufallswert- Returns:
- zufälliger Wert zwischen start und ende (auch diese beiden Werte sind möglich
-
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
-
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)
-
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 Rechtecksy
- y-Koordinate der linken oberen Ecke des Rechtecksbreite
- Breite des Rechtecks (in Richtung x-Achse)hoehe
- Höhe des Rechtecks (in Richtung y-Achse)
-
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 der linken-oberen Ecke des Quadrates, das den Kreis beinhaltety
- y-Koordinate der linken-oberen Ecke des Quadrates, das den Kreis beinhaltetradius
- Radius des Kreises
-
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 Liniey1
- y-Koordinate des ersten Punkts der Liniex2
- x-Koordinate des zweiten Punkts der Liniey2
- y-Koordinate des zweiten Punkts der Linie
-
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 Textesy
- x-Koordinate des Startpunkts des Textes, legt auch die Basislinie des Textes festtext
- auszugebender Text
-
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)
-
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 Rechtecksy
- y-Koordinate der linken oberen Ecke des Rechtecksbreite
- Breite des Rechtecks (in Richtung x-Achse)hoehe
- Höhe des Rechtecks (in Richtung y-Achse)
-
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 der linken-oberen Ecke des Quadrates, das den Kreis beinhaltety
- y-Koordinate der linken-oberen Ecke des Quadrates, das den Kreis beinhaltetradius
- Radius des Kreises
-
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 Liniey1
- y-Koordinate des ersten Punkts der Liniex2
- x-Koordinate des zweiten Punkts der Liniey2
- y-Koordinate des zweiten Punkts der Linie
-
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 Textesy
- y-Koordinate des Startpunkts des Textes, legt auch die Basislinie des Textes festtext
- auszugebender Text
-
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 wurdename
- identifizierender Text, der zusammen mit einem zu erzeugenden graphischen Element übergeben wurde. Das Paar (quelle, name) soll ein vorher erzeugtes graphisches Element eindeutig identifizieren.
-
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 wurdename
- 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 Elementsy
- 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
-
zuruecksetzen
public void zuruecksetzen()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 MethodeverschiebeObjektNach(.,.)
zu nutzen. -
abwischen
public void abwischen()Methode zum Löschen der gezeichneten Elemente, dazu werden auch alle Verbindungen und Referenzen, die zu Objekten bestehen, gelöscht.
-