/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
* @author Yannick
*/
package a.star.special;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
import java.util.Random;
import java.util.Vector;
public class AStarSpecial
{
static private Random r = new Random();
// Die Map
static private Map map = new Map(10);
static private Vector<Line> lines = new Vector<Line>();
// Fenster erstellen
static private JFrame frame = new JFrame("Simple paint");
public static void main(String args[])
{
for(int i = 0; i < 10; i++)
{
for(int j = 0; j < 10; j++)
{
map.set(i, j, r.nextInt(2));
}
}
int[] start = {r.nextInt(10), r.nextInt(10)};
int[] ziel = {r.nextInt(10), r.nextInt(10)};
map.set(start[0], start[1], 2); // Start
map.set(ziel[0], ziel[1], 3); // Ziel
// Das Erzeugen des GUIs muss auf dem
// Event-Dispatch-Thread ausgeführt
// werden:
SwingUtilities.invokeLater(new Runnable()
{
@Override
public void run()
{
createAndShowGUI();
}
});
while(true) // Nur zum testen, ob das Aktualisiren funktioniert
{
try
{
Thread.sleep(2000);
}
catch(InterruptedException e)
{
}
map.set(r.nextInt(10), r.nextInt(10), 4);
map.set(r.nextInt(10), r.nextInt(10), 4);
map.set(r.nextInt(10), r.nextInt(10), 5);
lines.add(
new Line(
new Color(128, 255, 128)
, r.nextInt(10), r.nextInt(10), r.nextInt(10), r.nextInt(10), true)
);
lines.add(
new Line(
new Color(0, 128, 0)
, r.nextInt(10), r.nextInt(10), r.nextInt(10), r.nextInt(10), true)
);
update();
}
}
// Erzeugt ein Fenster, das ein PaintPanel enthält,
// und macht das Fenster sichtbar
private static void createAndShowGUI()
{
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// PaintPanel erstellen und in das Fenster legen
PaintPanel paintPanel = new PaintPanel(map, lines);
paintPanel.setPreferredSize(new Dimension(map.get_x_size() * 52, map.get_y_size() * 52));
frame.getContentPane().add(paintPanel);
// Fenster zentrieren und anzeigen
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
/**
* Aktualisiert das Fenster
*/
private static void update()
{
// PaintPanel erstellen und in das Fenster legen
PaintPanel paintPanel = new PaintPanel(map, lines);
paintPanel.setPreferredSize(new Dimension(map.get_x_size() * 52, map.get_y_size() * 52));
frame.getContentPane().add(paintPanel);
// Fenster zentrieren und anzeigen
frame.setVisible(true);
}
}