ProjektGraph/OurApplication/OurLegendArea.java

77 lines
3.0 KiB
Java

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
}
}