尝试在控制器类(javafx)中更改图像(FXML)的url

如何使用我的控制器更改FXML文件中的标记中的网址。

图像嵌套在窗格> childeren> Imageview>图像中 看到图片

尝试在控制器类(javafx)中更改图像(FXML)的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
    }

}

如何实现?

iCMS 回答:尝试在控制器类(javafx)中更改图像(FXML)的url

首先,您需要进行类型转换,因为objectsPane.getChildren().get(i)从类型ImageView开始就为您提供了Node。然后,您可以使用新的网址创建新的图片。正如James所说,不可能仅更改URL。最后,用新的图像替换旧的图像。然后,您的代码可能看起来像这样:

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")));
    }
}
本文链接:https://www.f2er.com/2209748.html

大家都在问