Java 如何在for循环中使用gif?

Java 如何在for循环中使用gif?,java,jbutton,actionlistener,Java,Jbutton,Actionlistener,我正在构建一个内存匹配游戏,在ActionListener中,我想在打开一个块之前实现一个动画gif,但gif永远不会显示,我假设它会重置;我该如何解决这个问题 for(int i = 0; i< buttonNum; i++) { if(e.getSource() == button[i]) { try { URL blockIcon = this.getClass().getClassLoad

我正在构建一个内存匹配游戏,在ActionListener中,我想在打开一个块之前实现一个动画gif,但gif永远不会显示,我假设它会重置;我该如何解决这个问题

for(int i = 0; i< buttonNum; i++)
{
    if(e.getSource() == button[i])
    {           
        try
        {
            URL blockIcon = this.getClass().getClassLoader().getResource(block[i].toString());
            //sets it to the gif
            button[i].setIcon(uncoverBlock);
            Thread.sleep(5000);
            button[i].setIcon(new ImageIcon(blockIcon));
            System.out.println("Block: " + block[i]);
            currentIndex = i;
        }
        catch(InterruptedException ie)
        {
            ie.printStackTrace();
        }
    }
}
for(int i=0;i
你有一个线程。在这里睡觉是一个危险信号。在UI线程上渲染时,不应使用睡眠。相反,你应该使用一个Swing定时器。另请参阅,事实上你有一个线程。在这里睡眠是一个危险信号。在UI线程上渲染时,不应使用睡眠。相反,您应该使用摆动计时器。另请参见和