如何在将一个ImageIcon放在JButton之间时出现延迟?

时间:2015-09-21 18:41:07

标签: java swing

方法placePiece正确地将ImageIcon放在JButton上。我希望图像在那里停留一秒钟,然后用不同颜色的ImageIcon替换。以下代码的问题是永远不会出现红色ImageIcon。发生延迟,然后出现黑色ImageIcon。我想要出现红色ImageIcon,然后延迟1秒,然后出现黑色。提前感谢您的帮助。

placePiece(0, 3, "red");
//delay 1 second here
try 
{
    Thread.sleep(1000);
}
catch (Exception exc)  { }
placePiece(0, 3, "black");

2 个答案:

答案 0 :(得分:2)

我建议您使用Java javax.swing.Timer

这里有一个教程:https://docs.oracle.com/javase/tutorial/uiswing/misc/timer.html

在计时器中,您可以通过在speed下的参数中设置间隔来轻松获取间隔,如下所示。

int speed = 1000;  //delay of 1 second
timer = new Timer(speed, obj);

此外,当您使用Thread.sleep(1000)时,无法保证它始终会延迟1秒。

答案 1 :(得分:2)

您可以使用

placePiece(0, 3, "red");
int delay = 1000; 
 ActionListener taskPerformer = new ActionListener() {
  public void actionPerformed(ActionEvent evt) {
      placePiece(0, 3, "black");
  }
};
new Timer(delay, taskPerformer).start();

Thread.sleep()不适合摆动。