Hallo,
Ich möchte die Hintergrundfarbe eines JPanels ändern, dann eine Sekunde warten und dann die Farbe nochmal ändern.
Ich habs so versucht:
Das Panel soll gelb gemalt werden, dann 1 Sekunde warten, dann grün.
Jedoch wird eine Sekunde gewartet und dann sofort grün gemalt.
Wenn ich das mit dem grün malen rausnehme wird 1 Sekunde gewartet und dann gelb gemalt.
Anscheinend malt Swing nicht sofort, wie kann ich erzwingen das zuerst gemalt wird und erst dann 1 Sekunde gewartet wird?
mfg
Christian
Ich möchte die Hintergrundfarbe eines JPanels ändern, dann eine Sekunde warten und dann die Farbe nochmal ändern.
Ich habs so versucht:
Code:
while (it.hasNext()){
final ObjectPanelElement nextObject = ((ObjectPanelElement)it.next());
SwingUtilities.invokeLater(new Runnable(){
public void run(){
nextObject.setBackground(Color.YELLOW);
nextObject.repaint();
try {
Thread.currentThread().sleep(1000);
} catch(Exception e){}
nextObject.setBackground(Color.GREEN);
nextObject.repaint();
list.addAll(nextObject.getAllIncomingConnections());
}
});
}
Das Panel soll gelb gemalt werden, dann 1 Sekunde warten, dann grün.
Jedoch wird eine Sekunde gewartet und dann sofort grün gemalt.
Wenn ich das mit dem grün malen rausnehme wird 1 Sekunde gewartet und dann gelb gemalt.
Anscheinend malt Swing nicht sofort, wie kann ich erzwingen das zuerst gemalt wird und erst dann 1 Sekunde gewartet wird?
mfg
Christian