java - 如何设置多个 ImageView 的样式以不违反 JavaFX 11 中的 DRY

标签 java javafx javafx-11

有没有办法设置多个 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/

相关文章:

java - Eclipse如何生成代码?就像 Getter 和 Setter

java - 带有 EditText Android 的动态 ListView

java - 按钮的 css 样式不起作用

java - IntelliJ IDEA - 错误 : JavaFX runtime components are missing,,需要运行此应用程序

java - 如何使用 j2me (midp2.0) 从收件箱中读取短信?

java - 将 JAVA 应用程序连接到 SQL SERVER

javafx - Javafx 中的压力敏感平板电脑输入?

java - 如何在 JavaFX 中使用菜单栏中的 id?

java - 如何在 JavaExec 任务类路径中包含插件依赖项?

JavaFX:BorderPane 的布局问题 - 错误还是用户错误?