0

我想创建一个循环,用存储在 ArrayList 中的 BufferedImages 更改 JButton 的图像图标。当我尝试时,它只是将其设置为最后一张图像,而跳过所有其他图像。相关代码是这样的:

 private void playButtonActionPerformed(java.awt.event.ActionEvent evt) {                                           
    for (int x = 0; x < myPhotos.size(); x++) {
        icon.setImage(myPhotos.get(x));
        displayButton.setIcon(icon);
        try {
            Thread.sleep(1000);
        } catch (InterruptedException ex) {
            Logger.getLogger(GUI.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
} 

myPhotos 是缓冲图像的数组列表。

图标是一个 ImageIcon

displayButton 是一个 JButton。

我认为问题可能是 JButton 的图标只能设置一次,我希望你们中的一个人足够聪明,知道如何解决这个问题。

4

1 回答 1

1

不要在这里使用睡眠,因为你会挡住绘画。您应该使用 Swing 的计时器来执行重复任务,即在固定时间间隔后更改图标。

于 2012-04-22T20:02:34.900 回答