我有一个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)的引用,我无法理解。
因为添加了每个ChoiceField后PopupViews
的数量正在增加,我想知道是否有办法删除PopupView
。