我有一个问题:
在setVisible(false)
上拨打JFrame
,会使其消失,对吧?
再次调用setVisible(true)
使它再次出现,这意味着该对象完全仍在RAM中,对吧?
如果我需要在按下“关闭”按钮后立即删除所有内容,那么正确的方式是什么(当我在主UI中按下“配置”按钮时显示JFrame
,所以它应该消失(同样来自RAM)当我按下关闭按钮)?
谢谢你的时间,抱歉我的英语不好
答案 0 :(得分:1)
使用JFrame
的可见性不允许操作系统回收窗口分配的本机资源,这样做的方法是调用JFrame#dispose
/**
* Releases all of the native screen resources used by this
* {@code Window}, its subcomponents, and all of its owned
* children. That is, the resources for these {@code Component}s
* will be destroyed, any memory they consume will be returned to the
* OS, and they will be marked as undisplayable.
* ...
*/
public void dispose() {
doDispose();
}
关闭JFrame时调用dispose的另一种方法是执行以下操作
frame.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
答案 1 :(得分:0)
您必须设置框架的默认关闭操作。
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
您也可以在框架关闭/丢弃后尝试清理。
找到相关的documentation here。