最近,我开始使用DJ NativeSwing
作为我的嵌入浏览器JTabbedPane model
开发一个java应用程序。
当我点击某个链接时会打开一个新窗口,每次都会有新的JWebbrowser实例。但是,当我通过JTabbedPane提供的removeTabAt
关闭选项卡时,如何收集相关JWebbrowser拥有的资源?
在我的应用程序中,我尝试执行browser.getWebBrowserWindow().dispose();
并得到一个NullPointerException。所以我想知道如果我关闭标签时什么都不做会导致内存泄漏?
答案 0 :(得分:0)
如果您创建并销毁许多Web浏览器,则内存可能会增加。它通常取决于所使用的本机Web浏览器的质量(IE的旧版本非常糟糕)。有些人通过关闭界面并在最后一个Web浏览器关闭时重新打开它来解决这种情况,以确保为将来的Web浏览器准备好新环境(从而清除所有占用的内存)。 要获取由Web浏览器实例创建的窗口列表,您可能必须在打开窗口时保留这些引用,您可以通过添加Web浏览器侦听器并侦听windowWillOpen事件来跟踪这些窗口。也许演示应用程序中的示例“JWebBrowser> Navigation Control”会有所帮助。