Canvas/Polygone

Padawan

Erfahrenes Mitglied
Hallo leute,
auf einem canvas möchte ich ein polygon zeichnen, dessen Eckpunkte aus einer Datei eingelesen wurde. Die Datei wird mit einem JFileChooser ausgewählt. Soweit so gut.

Meine Fragen sind:
1. Wenn ich die Datei einlese wird es nicht sofort gezeichnet, sondern erst wenn ich das Fenster, was vom jFrame erbt bewege bzw. dessen Größe verändere. Wie kann man den Canvas aktualisieren bzw. neu zeichnen, vor allem wenn man kein Graphics Objekt hat?

2. wenn ich die 2. Datei lade, wird es zwar gezeichnet, die vorherige ist jedoch zum teil noch vorhanden/sichtbar. Wie kann man dies verhindern? :-(

Lg
Padawan
 
Hi
Wie hast du das Zeichnen umgesetzt? hast du paintComponent() überschrieben? Wenn ja, dann achte darauf, dass du zu Beginn der überschriebenen paintComponent() jeweils super.paintComponent() aufrufen solltest. Die Implementierung dort (über super() ) füllt dein Graphics-Object erst mal mit der Hintergrundfarbe.
 
Also ein JFrame aktualisiere ich immer folgenderweise:
Java:
        this.invalidate();
        this.validate();
        this.repaint();

Müsstest du halt da einbauen wo du was vom JFileChooser zurück bekommst wenn du nicht von JFrame erbst musst du statt this den namen des JFrames angeben :)

Zu zwei kannst du natürlich auf dem Objekt removeAll (bzw. remove was immer machen oder komplett neu initialisieren und neu auf der Komponente aufsetzen und die neue Datei zeichnen lassen.

Grüße
Youza
 
Schön wenn es so wäre hab leider den Effekt das es dann erst aktualisiert wenn man das Fenster aktiv setzt größer/kleiner macht minimieren und wieder maximieren es geht auf jeden Fall zumindest bei mir nicht automatisch erst wenn ich invalidate() / validate() hinzufüge funktioniert des so richtig
 
Zurück