package graph; import java.util.List; import java.util.Arrays; import java.util.ArrayList; /** * Diese Klasse Knoten definiert einen Knoten. * Knoten haben eine Position, eine Farbe und einen Wert für sonstige Codierungszwecke und sind markiert und/oder besucht. * Im Infotext kann eine zusätzliche Information für die Anzeige gespeichert werden. * * @author Dirk Zechnall, Thomas Schaller * @version 28.02.2023 (v7.0) * v7.0: Die Knoteninformationen werden in einer Hashmap gespeichert. Daher können beliebige weitere Informationen abgelegt werden. */ public class Knoten extends GraphElement { private int x; private int y; /** * Der Konstruktor erstellt einen neuen Knoten mit einem neuen Namen * * @param x x-Position des Knotens * @param y y-Position des Knotens */ public Knoten(int x, int y) { this(x,y,0); } /** * Der Konstruktor erstellt einen neuen Knoten mit einem Startwert * * @param x x-Position des Knotens * @param y y-Position des Knotens * @param neuerWert Der neue Wert des Knotens */ public Knoten(int x, int y, double neuerWert) { super(); this.x = x; this.y = y; set("Wert",neuerWert); set("Markiert", false); set("Geloescht", false); set("Farbe", -1); setSortierkriterium("Wert"); } /** * Die Methode init initialisiert den Zustand eines Knotens */ protected void init() { set("Wert", 0.0); set("Farbe", -1); set("Markiert", false); set("Besucht", false); } /** * Liefert einen kurzen Text, der den Wert des Knotens angibt und innerhalb der Kreises * des Knotens angezeigt werden kann. * @return Array von Anzeigezeilen (dürfen max. 2 sein) */ public List getKurztext(String[] namen) { int l = Math.min(namen.length,2); List t = new ArrayList(); for(int i = 0; i3) t.add(text.substring(0,3)); else t.add(text); } return t; } /** * Liefert eine ausführliche Beschreibung der Werte des Knoten. Wird in dem Tooltext Fenster * angezeigt, wenn man mit der Maus über den Knoten geht. * @return Array von Anzeigezeilen */ public List getLangtext(String[] namen) { int l = namen.length; List t = new ArrayList(); t.add("Knoten Nr. "+g.getNummer(this)); for(int i = 0; i