创建一个实例并销毁之前的实例

Create an instance and destroy the previous instance

我创建了一个创建 JTabbedPane 的静态方法,每次调用都会创建一个新的 JTabbedPane,但我希望在调用该方法时创建一个新实例 (JTabbedPane),并且将销毁之前的实例。

代码:

public  static void create(ColumnsUI cols, SiteTypePannelUI siteType){      
    JTabbedPane tabbedPane = new JTabbedPane(JTabbedPane.LEFT); 
    /* code */
}

如果不再有对旧实例的引用,那么它会在必要时被垃圾收集器销毁。

如果你只是创建一个对象,然后停止从任何变量引用它,它最终会被垃圾收集。

至于 GUI 元素,我假设您已将 JTabbedPane 添加到面板或其他一些 UI 元素上。通过这样做,一些变量引用您的 JTabbedPane。要删除此引用,您需要从面板中删除 JTabbedPane。

http://docs.oracle.com/javase/7/docs/api/java/awt/Container.html#remove(java.awt.Component)

注意:如果您已经注册了任何侦听器,您还需要注销它们。否则,您将继续引用该组件并无意中造成内存泄漏。请参阅 Java 失效的侦听器。