Hallo Community,
ich habe mittlerweile seit Wochen Probleme mit repaint() ich habe schon X seiten gegoogelt und nichts hat geholfen.
Zu meinem Problem ich versuche mich an einer Anwendung die automatisch einen Graphen von Punkt zu Punkt verbindet also nicht alle auf einmal sondern als Animation....
Ich Speicher die Punkte die verbunden werden sollen in ein Point Array und daraus soll dann paintcomponent sich die Koordinaten für die Verbindung raussuchen das sieht dann so aus :
getPointsDrawable steht für wie weit er im Array gehen kann also wieviele Punkte im Array gespeichert sind damit es keine Zugriffsfehler gibt.
Leider passiert rein garnichts wenn ich repaint() aufrufe nachdem ich einen Punkte hinzugefügt habe. Wenn er fertig ist und alle Punkte im Koordinatensystem verbunden sind gibt er den gesammten Graphen korrekt aus aber ich will ja das er das Stück für Stück macht ;( ;(
Habe es schon mit einem Thread versucht der jede halbe Sekunde repaint aufruft seiner ohne Erfolg...
Ich habe alles zum Zeichnen in der paintComponent Methode und rufe am Anfang immer super.paintComponent auf damit meine Buttons nicht verschwinden.(Nur als Info )
Achso und ich habe mal ein System.out in der paintcomponent gemacht es ist so das diese erst am Ende aufgerufen wird und dann gleich so oft wie es Wege gibt also wenn ich 5 Wege zeichne dann führt er am Ende 5 mal direkt hintereinander paintComponent aus anstatt das in gewissen abständen zu tun.
Meine Init und run Methoden sehen so aus :
Und das ganze ist ausgelagert also meine Main ist in einer anderen Klasse die PaintKlasse wird als Jpanel in der Main benutzt der Kopf der paint Klasse ist :
Hoffe jemand kann mit helfen bin am verzweifeln
Gruß Epytir
ich habe mittlerweile seit Wochen Probleme mit repaint() ich habe schon X seiten gegoogelt und nichts hat geholfen.
Zu meinem Problem ich versuche mich an einer Anwendung die automatisch einen Graphen von Punkt zu Punkt verbindet also nicht alle auf einmal sondern als Animation....
Ich Speicher die Punkte die verbunden werden sollen in ein Point Array und daraus soll dann paintcomponent sich die Koordinaten für die Verbindung raussuchen das sieht dann so aus :
Java:
for(int i = 0;i<towns.getPointsDrawable() ; i++)
{
x1 = (int)towns.getLinesPosition(i, 0).getX();
y1 = (int)towns.getLinesPosition(i,0).getY();
x2 = (int)towns.getLinesPosition(i,1).getX();
y2 = (int)towns.getLinesPosition(i,1).getY();
g.drawLine(x1, y1, x2, y2);
}
Leider passiert rein garnichts wenn ich repaint() aufrufe nachdem ich einen Punkte hinzugefügt habe. Wenn er fertig ist und alle Punkte im Koordinatensystem verbunden sind gibt er den gesammten Graphen korrekt aus aber ich will ja das er das Stück für Stück macht ;( ;(
Habe es schon mit einem Thread versucht der jede halbe Sekunde repaint aufruft seiner ohne Erfolg...
Ich habe alles zum Zeichnen in der paintComponent Methode und rufe am Anfang immer super.paintComponent auf damit meine Buttons nicht verschwinden.(Nur als Info )
Achso und ich habe mal ein System.out in der paintcomponent gemacht es ist so das diese erst am Ende aufgerufen wird und dann gleich so oft wie es Wege gibt also wenn ich 5 Wege zeichne dann führt er am Ende 5 mal direkt hintereinander paintComponent aus anstatt das in gewissen abständen zu tun.
Meine Init und run Methoden sehen so aus :
Java:
public void init()
{
clockThread= new Thread(this);
clockThread.start();
}
public void run()
{
System.out.println("TEdt");
while (true)
{
repaint();
try
{
clockThread.sleep(500);
}
catch (InterruptedException e)
{
System.out.println(e);
}
}
}
Java:
public class PaintPanel extends JPanel implements Runnable{
Gruß Epytir
Zuletzt bearbeitet von einem Moderator: