ProjektGraph/OurApplication/OurLegendArea.java

79 lines
3.1 KiB
Java
Raw Normal View History

2024-07-02 19:13:30 +00:00
package OurApplication;
2024-07-02 19:13:30 +00:00
import visualisation.LegendArea;
2024-07-09 13:51:40 +00:00
import javax.swing.BorderFactory;
import java.awt.Graphics;
import java.awt.Dimension;
import java.awt.Color;
/**
* 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.
*/
2024-07-02 19:13:30 +00:00
public class OurLegendArea extends LegendArea{
private static final long serialVersionUID = 1L;
/**
* Standard constructor
*/
2024-07-02 19:13:30 +00:00
public OurLegendArea(){
super();
2024-07-08 22:17:31 +00:00
//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
*/
2024-07-07 10:17:28 +00:00
public void initialize(Graphics g) {
// Erstellt einen neuen TitledBorder für den Legendenbereich
setBorder(BorderFactory.createTitledBorder("LegendArea"));
2024-07-08 22:17:31 +00:00
// Zeichnet den schwarzen Knoten (Unbesuchter Knoten)
2024-07-07 10:17:28 +00:00
int y = 30; // Startposition für das Zeichnen der Legenden-Elemente
2024-07-08 22:17:31 +00:00
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
2024-07-07 10:17:28 +00:00
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
2024-07-07 18:34:38 +00:00
// 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
}
}