Java 如何在将ImageIcon放置到JButton之间获得延迟?
placePiece方法正确地将ImageIcon放置在JButton上。我希望图像保持在那里一秒钟,然后用不同颜色的图像图标替换。以下代码的问题是红色图像图标从未出现。延迟发生,然后出现黑色图像图标。我想红色的图像图标出现,然后有一个1秒的延迟,然后黑色的出现。提前感谢您的帮助Java 如何在将ImageIcon放置到JButton之间获得延迟?,java,swing,Java,Swing,placePiece方法正确地将ImageIcon放置在JButton上。我希望图像保持在那里一秒钟,然后用不同颜色的图像图标替换。以下代码的问题是红色图像图标从未出现。延迟发生,然后出现黑色图像图标。我想红色的图像图标出现,然后有一个1秒的延迟,然后黑色的出现。提前感谢您的帮助 placePiece(0, 3, "red"); //delay 1 second here try { Thread.sleep(1000); } catch (Exception exc) { } pl
placePiece(0, 3, "red");
//delay 1 second here
try
{
Thread.sleep(1000);
}
catch (Exception exc) { }
placePiece(0, 3, "black");
我建议您使用Java的
javax.swing.Timer
这里有一个教程:
在计时器中,您可以通过在speed
下的参数中设置间隔来轻松获得间隔,如下所示
int speed = 1000; //delay of 1 second
timer = new Timer(speed, obj);
此外,当您使用
Thread.sleep(1000)
时,不能保证它总是延迟1秒 您可以使用like
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的好方法。swing
程序是一个单线程程序。与其使用Thread.sleep()
尝试使用a作为旁白,为什么你会发现,每个程序都至少有一个答案,其中两个有两个,但其中只有一个被接受的答案?如果我得到的正确答案不到我问题的10%,我可能会寻找另一个地方提问(或提出更好的问题)。