JavaFX: cleaning up tableview instances from memory

How should I clean up the tableview instance from memory,

From what I learned,

>Delete all listeners attached to the table (does it apply to the columns and rows of the corresponding table?) > Clear all columns And > have no strong references to table instances

From the external reference, I did the following,

>Set the focus model to null. > Set the mouse button listener to null. > Setselectionmodel is null. > Observablearraylist. With setitems null

Finally, my code is as follows

//I gave a try for,RowFactory and ColumnFactory to null.    
            tableView.setRowFactory(null);
            for (TableColumn column : this.tableView.getColumns()) {
                column.setCellFactory(null);
                column.setCellValueFactory(null);
            }
            tableView.getFocusModel().focus(null);
            tableView.setOnMouseClicked(null);
            tableView.setSelectionModel(null);
            tableView.getColumns().clear();
            tableView.setItems(FXCollections.observableArrayList());
            tableView = null;

My question is:

I open multiple table views. When I close, (the hashmapnode (from the profiler) related to the profileview is still in memory and not published). Therefore, whenever I close the tableview, I will call the above code

In addition, I use the internal class to set the following setcellfactory,

column.setCellFactory((TableColumn<?,?> param) -> new EditingTableCell());

private class EditingTableCell extends TableCell<?,?> {
//.....
}

So, how should I properly clean up a tableview instance so that it can be garbage collected

Solution

3 (no strong reference to table instances) should be sufficient

If there is no stronger reference, the listener is a weak reference and does not prevent the GC from cleaning up the object

However, if the tableview is included in a tab, it may not be a GC when closing the tab, because JavaFX keeps a strong reference to the last closed tab inside it (it took me some time to find out - I consider this an unwelcome bug like behavior)

The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
分享
二维码
< <上一篇
下一篇>>