我的Java FX 2应用程序中有几个fxml文件和控制器。
LayoutController是layout.fxml控制器,包含静态布局元素BorderPane。该控制器有一些方法:
BorderPane.setHeader
(通过加载header.fxml文件和返回节点的一些方法)BorderPane.setCenter
(通过加载center.fxml文件和返回节点的一些方法)initialize(URL url, ResourceBundle resourceBundle)
。
HeaderController是header.fxml控制器,包含控件元素TabPane。 HeaderController具有onSelected EventHandler。关于此操作进入BorderPane.center插入center.fxml。
CenterController是center.fxml控制器,在初始化时插入控件元素TableView并用数据填充它。
我的问题是内存泄漏。我在重复选择标签时获得了堆空间。 请帮忙!
答案 0 :(得分:0)
您是否尝试过使用JVM选项-XX:+ HeapDumpOnOutOfMemoryError? 您可以阅读有关此here
的更多信息如果在每次点击时重新创建UI对象而不是重复使用,您应该尝试关注? 请阅读以下链接以了解更多信息: 1)Memory Leaks in JavaFX 2)Node object not getting GCed
答案 1 :(得分:0)
已实现的方法,清除以前创建的控制器中的所有数据,如下所示:
public void dispose() {
table.getColumns().clear();
table.getItems.clear();
table = null;
}
这是正确的方法吗?