在我的JavaFX应用程序中,我使用Pagination
来显示一些图片。阅读图片需要花费很多时间,所以我用ObservableList<Image>
填充占位符图像,这些图像在加载时应由原件替换。
一切正常,但唯一的一点是当图片加载时当前页面没有更新。我必须更改CurrentPageIndex
并更改回来。显示右图
为了加载图像,我创建了一个Task
,以便我能够在此过程中使用该应用程序。
所以我的问题是,如何更新当前页面的内容?
PageFactory看起来像这样:
ImageView imageView = new ImageView();
Image img = images.get(index);
imageView.setImage(img);
imageView.setFitWidth(240);
imageView.setStyle("-fx-background-color: white");
imageView.setPreserveRatio(true);
imageView.setSmooth(true);
imageView.setCache(true);
imageView.setEffect(createShadow(Color.BLACK, false));
VBox pageBox = new VBox();
pageBox.setAlignment(Pos.CENTER);
pageBox.getChildren().add(imageView);
return pageBox;
这里我替换图像(前两行是框架的方法):
for (int i = 0; i < pageCount; i++) {
PagePainter pp = parser.getPagePainter(i);
BufferedImage buffImg = pp.getImage(200);
fxImages.set(i, SwingFXUtils.toFXImage(buffImg, null));
}