在 JavaFX 中将 ImageView[] 数组添加到 BorderPane 时出错

Error while adding ImageView[] array to BorderPane in JavaFX

我做了一个ImageView数组:

public static ImageView[] array = new ImageView[2];

然后设置ImageView:

ImageView img = new ImageView(new Image("sample.png"));
array [0] = img;
array [1] = img;

然后将其添加到屏幕:

root.getChildren().add(array [0]);
root.getChildren().add(array [1]);

错误:

Exception in thread "JavaFX Application Thread" java.lang.IllegalArgumentException: Children: duplicate children added: parent = BorderPane@78e30575

所以,我的错误在哪里?

错误消息确实说明了一切。您不能两次添加相同的 child,并且在您的代码段中 array[0]array[1] 都指向相同的 object。但是,您可以添加两个使用相同图像的 object:

array[0] = new ImageView(new Image("sample.png"));
array[1] = new ImageView(new Image("sample.png"));