我有一个ChoiceFieldComponent,当它被点击时显示 PopupView
. PopupView
的内容是定制的ChoiceMenu,显示鸡尾酒成分列表 . 由于配方的配料数量不同,可以添加/删除ChoiceField .
从其父级 View
中删除ChoiceField时,似乎仍然存在强引用,这会阻止ChoiceField和ChoiceMenu进行垃圾回收 .
我认为这是发生的,因为 PopupView
拥有对两个节点的引用:
popup = new PopupView(getSkinnable(), choiceMenu);
我试图通过以下方式删除对 choiceMenu
的引用:
BorderPane container = (BorderPane) popup.lookup(".container");
container.setCenter(null);
但仍有对 PopupView.ownerNode
(ChoiceField)的引用,我无法理解 . 因为 PopupViews
的数量随着每个ChoiceField的增加而增加,我想知道是否有办法删除 PopupView
.