我如何得到延迟之间把ImageIcon在JButton



placepece方法正确地将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");

我建议您使用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秒。

您可以使用

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()不适合swing

最新更新