У меня есть класс ImageBean, и я хочу использовать его для загрузки изображений из массива. Я предварительно загрузил массив изображениями (всего 9) и хочу отображать одно изображение последовательно каждый раз, когда я обновляю браузер. Изображения называются «1.jpg, 2.jpg» и т. Д. (i.e image '1' -hit refresh, image '2' hit refresh, ... image '9'). Любая помощь будет принята с благодарностью. Благодарю.Java Server Faces Загрузка изображений из массива
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);
}
}
Edit 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];
}
}
Crossposted к протоколу HTTPS://forums.oracle.com/forums/thread.jspa?threadID=2362283 – EJP