Swing JLabels in einer Schleife aktualisieren

Doomed2Failure

Neues Mitglied
Hallo,

ich habe mir eine kleine Laufschrift programmiert, nur mein Problem ist, dass sie nicht von alleine läuft...

Das Programm besteht aus vielen vielen JLabels die das gleiche Bild implementieren und sollen jenachdem ob sie gebraucht werden angezeigt oder nicht angezeigt werden.

Das ganze läuft in der Methode vonrechtsnachlinks() vereinfacht nach diesem Schema ab:

Java:
punkt[0][0].setVisible(punkt[0][1].isVisible());

Durch den Klick auf den Start-Button wird folgendes Event ausgelöst:

Java:
public class Listener1 implements ActionListener { 
		public void actionPerformed(ActionEvent e) {
			SwingUtilities.invokeLater(
				new Runnable() {
				    public void run() {
				    	for (int k=0;k<10;k++){
				    		try {
					   			Thread.sleep(wartezeit);
					   		}
					   		catch (InterruptedException f) {
			
					   		}
					   		vonrechtsnachlinks();
				    	}
					}
				}
			);
		}
	}

Testweise sollen 10 Durchgänge ablaufen und in jedem Durchgang die Labels nach einer gewissen Wartezeit mit den neuen Werten angezeigt werden.
Die Schleife läuft soweit auch durch, jedoch wird nur am Ende der Schleife der aktuelle Wert grafisch angezeigt.

Danke für eure Hilfe

Doomed2Failure
 
SwingUtilities.invokeLater() macht in deinem Falle nicht wirklich Sinn, da der Code ja bereits auf dem EDT ausgeführt wird !
Thread.sleep lässt also auch diesen schlafen usw...
Erstelle einen neuen Thread in der actionPerformed und wenn du dann Änderungen an der GUI vornehmen musst, ist invokeLater die richtige Wahl...oder direkt den Swing-Timer benutzen..hier im Forum(gerade letzte Woche >= 2x ) wurden schon viele Beispiele gepostet dazu.
 

Neue Themen


Zurück
Oben