I\'m trying to build a Twitter-style ListView, and I couldn\'t reuse the same ImageView multiple times in the same list. Loading multiple copies seem to be wasteful and caus
Do something like this:
ImageView image = ...
ImageView src = ...
image.setImage(src.getImage());
A scenegraph cannot contain the same Node twice in JavaFX, and there is no way of cloning nodes (as far as I know).
A workaround would perhaps be to make your map a HashMap store Image instead of ImageView, and change the last row to
setGraphic(new ImageView(images.get(imageUrl)));
This way you'll at least cache the loading of the actual Image, which should really be the heavy lifting part.
Caching images is good way.
Also You can load images in background, it greatly improve performance.
public Image getImage(String path, boolean backload) {
image = imageCache.get(path);
if (image == null) {
image = new Image(path, backload);
imageCache.put(path, image);
}
return image;
}