找不到变量ImageIO

时间:2016-08-03 20:59:47

标签: timer background jframe

任何人都可以帮我将照片加载到JLabel中吗? ATM无法识别ImageIO。

  private void doAnimation (int frame)
{
    String str = Integer.toString(frame);
    String selFrame = "f"+ str + ".png";

    BufferedImage wPic = ImageIO.read(this.getClass().getResource(selFrame));
    JLabel wIcon = new JLabel(new ImageIcon(wPic));
    add(wIcon);
    JLabel picLabel = new JLabel(new ImageIcon(wPic));
    add(picLabel);
}

selFrame是使用计时器生成的png文件的名称。 Frame是在应用程序中使用时导入到函数中的数字。

这是actionlistener中的计时器

if (actionEvent.getSource() == timerBackground)
    {
        if (backgroundNum == 42) backgroundNum = 1;
        doAnimation(backgroundNum);
        backgroundNum++;
    }

这是在构造函数中激活的计时器

timerBackground = new javax.swing.Timer (200, this);

1 个答案:

答案 0 :(得分:0)

你需要覆盖PaintComponenet方法并在你的图像周围做一个try catch(IOexception)bloc = Imageio.read ... 你可以像这样重写方法:

@Override
        public void paintComponent(Graphics g){
        super.paintComponent(g);
        g.drawImage(image, 0, 0, this);
        }