我昨天发布了一个类似的问题,关于删除标签(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/