JavaFX抛出看似不可能的IllegalArgumentException

时间:2016-05-12 06:57:57

标签: java exception javafx

我知道JavaFX严重限制了对给定父级添加多次的节点。代码段似乎是合理的......

parent.getChildren().add(node1);
parent.getChildren().add(node1);

...将在第二次调用时抛出异常,因为该节点不能多次包含在父节点中。

然而,我的问题有点模糊。以下代码来自Pane的子类。

if (this.getChildren().contains(foo)) {
    System.out.println("WARNING" + /* some other info about foo */);
} else {
    System.out.println("all okay");
}
this.getChildren().remove(foo);
this.getChildren().add(foo); // this still throws an exception

这是打印的错误日志:

all okay
all okay
all okay
...
Exception in thread "JavaFX Application Thread" java.lang.IllegalArgumentException: Children: duplicate children added: parent = CardList@63eddf37

我不确定是什么原因造成的,或者它可能是JavaFX中的一个错误。我的应用程序没有使用任何多线程,即使它确实如此,JavaFX也非常能控制其线程安全。

如果有人能够提供一些有关导致此问题的见解,我们将不胜感激。

0 个答案:

没有答案