Problem mit JLabel (Bewegung in Schleife)

  • Themenstarter Themenstarter schlagi123
  • Beginndatum Beginndatum
S

schlagi123

Gast
Hallo,

erstmal der Code

Java:
//....
  public void mouseClicked(MouseEvent e)
  {
    date.x = d.l_109.getX();
    date.y = d.l_109.getY();

    for ( int i = 0; i < 50; i++ )
    {
      date.x++;
      date.y++;
      d.l_109.setBounds(date.x,date.y,50,50);

      try
      {
        Thread.sleep(100);
      }
      catch(InterruptedException I) {}
    }
  }

Mein Problem jetzt, dass ich immer nur das endergebnis der sehen, und nicht, wie das JLabel sich bewegt.
ich würde gerne, jedes mal nachdem die Koordinaten um eins erhöht werden, eine Aktualisierung des Bildes.

Ich hoffe auf eure Hilfe

Danke im Vorraus.
 
Zuletzt bearbeitet von einem Moderator:
Deine Schleife blockiert den EDT (vorallem durch das Thread.sleep...).... Erst wenn die Methode
Code:
mouseClicked
komplett ausgeführt wurde kann sich der EDT wieder um andere Sachen kümmern, wie bspw. das Label auf dem Bildschirm neuzeichnen........

Du musst deine Schleife in einem anderen Thread laufen lassen.
 
Schaur dir SwingWorker oder SwingUtilities#invokeLater an... Es gibt viele Einträge zu dem Thema im Forum...
 
Er macht einen neuen Thread und ruft dann die setBound mit invokeLater auf... Oder halt SwingWorker
 
Ich verstehe, jedoch bekomme ich es nicht hin, kann vielleicht an meine code ein kleines Beispiel machen?
wäre echt nett.
Danke
 

Neue Themen


Zurück
Oben