Announcement

Collapse
No announcement yet.

repaint() flimmert

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • repaint() flimmert

    hallo zusammen,
    da mein gui nichts von der logik des programms wissen soll, und die logik geometrische objekte auf panels zeichnet repainte ich die panels im folgenden thread:

    public void run() {

    while (true) {
    try {
    Thread.sleep(100);
    }
    catch (Exception e) {
    e.printStackTrace();
    }
    panel.repaint();
    }
    }

    das problem ist nur, das es flimmert, es baut die grafischen objekte nicht schön auf, ich habs mit swing und mit awt versucht und beidemale das selbe.
    danke andy

  • #2
    Könnte daran liegen, dass Java jedesmal beim repainten das Fenster davor löscht.
    Versuch mal die Methode "public void update(Graphics g)" zu überschreiben, entweder leer oder mit dem selben Inhalt der paint() Methode

    Comment


    • #3
      Im Buch "graphic JAVA 2.0" steht zu diesem Thema auf der Seite 153 unter "Benutzerdefiniertes Zeichnen in Swing-Komponenten":

      1. ...

      ..

      6. Falls eine Swing-Komponente beim Aktualisieren flackert, stellen Sie sicher, dass sie doppelt gepuffert wird, anstatt ihre Aktualisierungsmethode zu überschreiben.

      Zitatende.

      Gemeint ist die Eigenschaft isDoubleBuffered() der Klasse Component. Falls dein Panel nicht auf doubleBuffered eingestellt ist, würde ich es zuerst einmal damit probieren. Das scheint der sauberere Weg zu sein.

      Gruß

      Wolfgan

      Comment

      Working...
      X