Thread.sleep(1000);
- 通常在 EDT中做这件事不是一个好主意。您应该尝试使用Timers。
- 你还需要revalidate()/validate() and repaint()
事后打电话。
所以也许是这样的:
Timer yellowTimer = new Timer(1000,new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
jtp.setBackground(Color.YELLOW);
//call revalidate()/validate() and repaint() afterward
jtp.revalidate();
jtp.repaint();
}
});
yellowTimer.setRepeats(false);
Timer orangeTimer = new Timer(2000,new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
jtp.setBackground(Color.ORANGE);
//call revalidate()/validate() and repaint() afterward
jtp.revalidate();
jtp.repaint();
}
});
orangeTimer.setRepeats(false);
yellowTimer.start();
orangeTimer.start();