我有一个非常简单的JFrame窗口,其中包含一个按钮:不.
在main函数中我设置了setVisible(true);我的JFrame和No按钮监听器我要关闭窗口,所以我将可见性设置为false:setVisible(false);然后我做System.exit(0);为了防止多次运行程序时可能发生的内存泄漏.
我有两个问题:
>我真的需要System.exit(0);在上述情况下?
>如果我将此JFrame作为弹出窗口,我实际上无法使用System.exit(0);因为这将终止整个程序.那么如何正确关闭弹出窗口并保持在主JFrame窗口中呢? (现在我只用setVisible(false)关闭它;当我通过程序执行多次这样做时,程序变得很慢).
解决方法
>使用
>如果有另一个弹出容器的真正原因
CardLayout
>如果有另一个弹出容器的真正原因
>使用JDialog
with parent to JFrame
,使用setModal
/ ModalityTypes
> create only one JDialog and to reuse this one JDialog
by getContentPane#removeAll()
>使用JOptionPane进行简单的用户交互
>将两者放在一起,高于两点,使用CardLayout弹出JDialog与父级到JFrame,注意从一张卡切换到另一张卡后可能需要调用JDialog.pack()