有没有办法设置多个 ImageView 和类似的样式?例如,我有这样的代码:
Image pic1 = new Image(getClass().getResourceAsStream("/pic1.png"));
ImageView picView1 = new ImageView(pic1);
picView1.setFitHeight(PIC_SIZE);
picView1.setPreserveRatio(true);
picView1.setSmooth(true);
Image pic2 = new Image(getClass().getResourceAsStream("/pic2.png"));
ImageView picView2 = new ImageView(pic2);
...
我想更改所有图像的大小,有超过 10 张图像。我可以创建一个组并将所有 View 添加到其中,并通过该目标来操作所有对象吗? JavaFX (11) 非常新。
最佳答案
您可以将对 ImageView 的引用保留在列表中。
List<ImageView> imageViews = new ArrayList<>();
...
Image pic1 = new Image(getClass().getResourceAsStream("/pic1.png"));
ImageView picView1 = new ImageView(pic1);
picView1.setFitHeight(PIC_SIZE);
picView1.setPreserveRatio(true);
picView1.setSmooth(true);
imageViews.add(picView1);
Image pic2 = new Image(getClass().getResourceAsStream("/pic2.png"));
ImageView picView2 = new ImageView(pic2);
imageViews.add(picView2);
...
当您需要更改图像的大小时,您只需遍历列表并将 fitHeight 属性设置为您想要的值。
for (ImageView imageView : imageViews) {
imageView.setFitHeight(PIC_SIZE);
}
关于java - 如何设置多个 ImageView 的样式以不违反 JavaFX 11 中的 DRY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54677966/