方法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");
答案 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()
不适合摆动。