任何人都可以帮我将照片加载到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);
答案 0 :(得分:0)
你需要覆盖PaintComponenet
方法并在你的图像周围做一个try catch(IOexception)bloc = Imageio.read ...
你可以像这样重写方法:
@Override
public void paintComponent(Graphics g){
super.paintComponent(g);
g.drawImage(image, 0, 0, this);
}