为什么使用while循环在GUI中显示图像不起作用?

时间:2017-02-06 21:02:53

标签: java image swing user-interface

我有一项任务:

自动显示一系列图片,如幻灯片,按钮名为 btnAutoView ,显示图片的功能称为 displayImage(int index), index是图片的订单号,如1,2,3,4,5。

代码如下(counter是全局变量):

public void displayImage(int index)
{
    String[] imageList = getImages();
    String imageName =imageList[index];

    ImageIcon icon = new ImageIcon(filePath+'/'+imageName);
    Image image = icon.getImage().getScaledInstance(PhotoView.getWidth(),PhotoView.getHeight(),Image.SCALE_SMOOTH);
    PhotoView.setIcon(new ImageIcon(image));
}

btnAutoView.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            counter=0;
            while(counter!=5){
                try {
                    Thread.sleep(2000);
                } catch (InterruptedException e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                }
                displayImage(counter++);
            }
        }
    });

当我点击按钮时,图片应每2秒逐一显示。但它不起作用,我使用 System.out.println(计数器)来检查 thread.sleep(2000),它工作正常,这意味着我不能不止一次使用 displayImage()

那么这里的问题是什么?

0 个答案:

没有答案