Java FX 2堆空间

时间:2012-08-29 13:14:11

标签: java javafx-2

我的Java FX 2应用程序中有几个fxml文件和控制器。

  1. LayoutController是layout.fxml控制器,包含静态布局元素BorderPane。该控制器有一些方法:

    • BorderPane.setHeader(通过加载header.fxml文件和返回节点的一些方法)
    • BorderPane.setCenter(通过加载center.fxml文件和返回节点的一些方法)
    • setHeader方法调用的
    • initialize(URL url, ResourceBundle resourceBundle)

  2. HeaderController是header.fxml控制器,包含控件元素TabPane。 HeaderController具有onSelected EventHandler。关于此操作进入BorderPane.center插入center.fxml。

  3. CenterController是center.fxml控制器,在初始化时插入控件元素TableView并用数据填充它。

  4. 我的问题是内存泄漏。我在重复选择标签时获得了堆空间。 请帮忙!

2 个答案:

答案 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;
}

这是正确的方法吗?