package OurApplication; import visualisation.LegendArea; import javax.swing.*; import java.awt.*; /** * This class represents a visualization.LegendArea implementation and has been created for demonstration purposes only. * Method initialize(Graphics) is overridden and now implements logic for drawing parameters on the legend area. */ public class OurLegendArea extends LegendArea{ private static final long serialVersionUID = 1L; /** * Standard constructor */ public OurLegendArea(){ super(); //set the legend area's preferred size manually for best visualization setPreferredSize(new Dimension(150, 170)); } /** * Overridden method from super class. * Draws all elements and descriptions on the LegendArea * @param g the Graphics object of the corresponding panel */ public void initialize(Graphics g) { // Erstellt einen neuen TitledBorder für den Legendenbereich setBorder(BorderFactory.createTitledBorder("LegendArea")); // Zeichnet den schwarzen Knoten (Unbesuchter Knoten) int y = 30; // Startposition für das Zeichnen der Legenden-Elemente g.setColor(Color.BLACK); g.fillOval(10, y, 20, 20); // Zeichnet einen kleinen Kreis (Knoten) mit der Farbe des Elements g.setColor(Color.BLACK); g.drawOval(10, y, 20, 20); // Zeichnet den Rand des Kreises g.drawString("Unbesuchter Knoten", 40, y + 15); // Zeichnet die Beschreibung neben dem Kreis // Zeichnet den roten Knoten (Start/End Knoten) y += 40; // Startposition für das Zeichnen der Legenden-Elemente g.setColor(Color.RED); g.fillOval(10, y, 20, 20); // Zeichnet einen kleinen Kreis (Knoten) mit der Farbe des Elements g.setColor(Color.BLACK); g.drawOval(10, y, 20, 20); // Zeichnet den Rand des Kreises g.drawString("Start/End Knoten", 40, y + 15); // Zeichnet die Beschreibung neben dem Kreis // Zeichnet den blauen Knoten (Besuchter Knoten) y += 40; // Nach unten verschieben für das nächste Element g.setColor(Color.BLUE); g.fillOval(10, y, 20, 20); // Zeichnet einen kleinen Kreis (Knoten) mit der Farbe des Elements g.setColor(Color.BLACK); g.drawOval(10, y, 20, 20); // Zeichnet den Rand des Kreises g.drawString("Besuchter Knoten", 40, y + 15); // Zeichnet die Beschreibung neben dem Kreis // Zeichnet den gelben Knoten (Erreichbare Knoten) y += 40; // Nach unten verschieben für das nächste Element g.setColor(Color.YELLOW); g.fillOval(10, y, 20, 20); // Zeichnet einen kleinen Kreis (Knoten) mit der Farbe des Elements g.setColor(Color.BLACK); g.drawOval(10, y, 20, 20); // Zeichnet den Rand des Kreises g.drawString("Erreichbare Knoten", 40, y + 15); // Zeichnet die Beschreibung neben dem Kreis // Zeichnet den grünen Knoten (Fertiger Weg) y += 40; // Nach unten verschieben für das nächste Element g.setColor(Color.green); g.fillOval(10, y, 20, 20); // Zeichnet einen kleinen Kreis (Knoten) mit der Farbe des Elements g.setColor(Color.BLACK); g.drawOval(10, y, 20, 20); // Zeichnet den Rand des Kreises g.drawString("Fertiger Weg", 40, y + 15); // Zeichnet die Beschreibung neben dem Kreis } }