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.
  • 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.
Objekte können dem Interaktionsbrett mitteilen, dass sie über gedrückte Tasten informiert werden wollen. Hierzu dient die Methode 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 Zufallswert
      ende - 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 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)
    • 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 beinhaltet
      y - y-Koordinate der linken-oberen Ecke des Quadrates, das den Kreis beinhaltet
      radius - 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 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
    • 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
    • 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 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)
    • 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 beinhaltet
      y - y-Koordinate der linken-oberen Ecke des Quadrates, das den Kreis beinhaltet
      radius - 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 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
    • 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
    • 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.
    • 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
    • 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 Methode verschiebeObjektNach(.,.) 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.