클래스 ImageBean이 있고 배열에서 이미지를로드하는 데 사용하고 싶습니다. 이미지가있는 배열을 미리로드하고 (총 9 개) 브라우저를 새로 고칠 때마다 하나의 이미지를 연속적으로 표시하려고합니다. 이미지의 이름은 '1.jpg, 2.jpg'입니다. (예 : 이미지 '1'- 새로 고침 이미지, '2'이미지 새로 고침, 이미지 '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);
}
}
내가 ArrayList를 대신 BufferedImage의 배열을 사용 그래서 약간의 코드를 편집 한 1
편집. 이제는 오류가 발생하지 않지만 이미지는 브라우저에 표시되지 않습니다. 그것은 이전 이미지를 계속 추가 할 것이다 실패 원래 경우
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];
}
}
이 HTTPS에 Crossposted ... 현재 이미지를 유지하기 위해 변수를 추가하고 바로 다음 이미지를 얻을 것 /forums.oracle.com/forums/thread.jspa?threadID=2362283 – EJP