我昨天发布了一个关于在删除标签(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);
}
}
答案 0 :(得分:0)
似乎这是一个错误,应该在Java 8u20中修复(请参阅此处的可用性:http://openjdk.java.net/projects/jdk8u/releases/8u20.html):https://javafx-jira.kenai.com/browse/RT-25652