Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为照片库加载图片的最佳方式_Java_Photo Gallery - Fatal编程技术网

Java 为照片库加载图片的最佳方式

Java 为照片库加载图片的最佳方式,java,photo-gallery,Java,Photo Gallery,我想用一本扫描过的书的jpg文件制作一本书(或者一个照片库)。 用户给出了他想要访问的页面的编号,然后单击按钮 请参阅本页。 我需要知道加载图片的最佳方式。 我正在考虑对每一页都这样做: private ImageIcon image1= new ImageIcon ("1.jpg"); private ImageIcon image2 = new ImageIcon ("2.jpg"); .... 然后将图片排列成一个数组,以此类推。。。 但是我有超过500张图片,像这样加载页面很无聊。 那

我想用一本扫描过的书的jpg文件制作一本书(或者一个照片库)。 用户给出了他想要访问的页面的编号,然后单击按钮 请参阅本页。 我需要知道加载图片的最佳方式。 我正在考虑对每一页都这样做:

private ImageIcon image1= new ImageIcon ("1.jpg");
private ImageIcon image2 = new ImageIcon ("2.jpg");
....
然后将图片排列成一个数组,以此类推。。。 但是我有超过500张图片,像这样加载页面很无聊。
那么还有别的办法吗

好吧,我可以说最好的方法是延迟加载加上预缓存。 延迟加载意味着您仅在用户需要时加载图像。例如:

img = 56; // suppose the user want to see page 56
if(images[img] != null) { // images is an array with the images
    images[img] = new ImageIcon (img + ".jpg");
}
此外,您还可以告诉用户,当用户看到一个页面时,他们将看到下一个页面(预缓存)。因此,您还可以加载以下X页

PRELOAD = 10; // number of pages to preload
img = 56;
for(int i = 0; i < PRELOAD; i++) {
  if(images[img+i] != null) {
    images[img+i] = new ImageIcon ((img + i) + ".jpg");
  }
}
PRELOAD=10;//要预加载的页数
img=56;
对于(int i=0;i
此外,您可能会认为,在开始时,用户总是会查看第一个页面。因此,您可以在程序开始时预加载前X页