如何改变我的控制器在FXML文件中的标签中的url。
图片嵌套在pane > childeren > Imageview > 图片见图。
我想要什么
我想循环检查imageevies的坐标,然后用正确的坐标改变url。
这是我的循环
for (int i=0; i < 54; i++) {
if (objectsPane.getChildren().get(i).getLayoutX() == village.getX() && objectsPane.getChildren().get(i).getLayoutY() == village.getY()) {
objectsPane.getChildren().get(i). // Setting the url
}
}
如何实现这个目标?
首先,你需要做一个类型铸造,因为 objectsPane.getChildren().get(i)
给你 ImageView
属于 Node
. 然后你可以用新的网址创建一个新的图片。正如James评论的那样,不可能只改变网址。最后,你用新的图片替换旧的图片。你的代码就可以像这样。
for (int i = 0; i < 54; i++) {
if (objectsPane.getChildren().get(i).getLayoutX() == village.getX() && objectsPane.getChildren().get(i).getLayoutY() == village.getY()) {
// Type cast from Node to ImageView:
ImageView imageView = (ImageView) objectsPane.getChildren().get(i);
// Create new image with new url:
Image image = new Image(getClass().getResourceAsStream("/assets/img/gameobjects/new-image.png"));
// Replace the old with the new image:
imageView.setImage(image);
// Or alternatively as a one-liner:
//((ImageView) objectsPane.getChildren().get(i)).setImage(new Image(getClass().getResourceAsStream("/assets/img/gameobjects/new-image.png")));
}
}