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