我昨天发布了一个类似的问题,关于删除标签(JavaFX GUI doesn't release memory)时释放内存。原来,我是在动作侦听器中坚持引用的。今天,我一直在尝试使用Tab控件做类似的事情,但是这次没有添加任何侦听器,因为它们内置于JavaFX控件中。

关闭Tab时,堆仍包含Tab实例及其一些内部类。我可以做些什么来释放内存,还是JavaFX中的错误?

public class TabTest extends Application {

    @Override
    public void start(Stage primaryStage) {

        final TabPane tabPane = new TabPane();
        tabPane.getTabs().add(new Tab());
        tabPane.setTabClosingPolicy(TabPane.TabClosingPolicy.SELECTED_TAB);

        //create scene and stage
        Scene scene = new Scene(tabPane);
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

最佳答案

似乎是一个错误,应该在Java 8u20中修复(请参见此处的可用性:http://openjdk.java.net/projects/jdk8u/releases/8u20.html):https://javafx-jira.kenai.com/browse/RT-25652

关于java - 关闭JavaFX Tab不会释放内存,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24780226/

10-10 16:30