【发布时间】:2012-04-07 05:36:17
【问题描述】:
我有一个 ImageBean 类,我想用它从数组中加载图像。我已经用图像(总共 9 个)预加载了数组,并且希望每次刷新浏览器时连续显示一张图像。图像被命名为'1.jpg,2.jpg'等 (即图像'1'-点击刷新,图像'2'点击刷新,......图像'9')。任何帮助将不胜感激。谢谢。
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import java.io.Serializable;
import java.util.ArrayList;
import javax.imageio.ImageIO;
@ManagedBean(name="ImageBean")
@SessionScoped
public class ImageBean implements Serializable
{
private static final long serialVersionUID = 1L;
ArrayList<Image> myArr = new ArrayList<Image>();
BufferedImage img = null;
public ImageBean()
{
for(int i = 1; i < 10; i++)
{
try
{
img = ImageIO.read(new File(i + ".jpg"));
}
catch (IOException ex) {}
myArr.add(img);
}
}
public BufferedImage getImage(int i)
{
return (BufferedImage) myArr.get(i);
}
}
编辑 1
我稍微编辑了代码,所以我使用 BufferedImage 数组而不是 ArrayList。现在我没有收到错误,但图像没有显示在浏览器中。
public class ImageBean implements Serializable
{
private static final long serialVersionUID = 1L;
BufferedImage[] myArr = new BufferedImage[9];
public ImageBean()
{
for(int i = 0; i < 9; i++)
{
try
{
myArr[i] = (ImageIO.read(new File(i+1 + ".jpg")));
}
catch (IOException ex) {}
}
}
public BufferedImage getImage(int i)
{
return (BufferedImage) myArr[i];
}
}
【问题讨论】: