嘿,我有两个JFrame,一个是我的主登录框架,用户输入了用户名和密码,等等。

登录后,用户将移至主桌面程序。

例:
当用户第一次加载并决定退出时,他们单击角落的x,这将调用我的addWindowListener事件,然后单击(取消)它不会执行任何操作。这就是我要的。

但是,如果用户从我的登录表单登录到我的主桌面窗口,然后单击x,它将在主窗口中调用addWindowListener事件,并询问他们是否要注销。问题是,当他们单击某个动作时,它就会再次询问。我已经检查过了,每次调用新窗口时似乎都在发生。

所以...可能的问题是我该如何使我的活动仅被调用一次?

进一步的例子

启动程序>单击X>单击取消(可以正常工作)
启动程序>登录>在主窗口中单击X>单击取消(再次询问)

最佳答案

1)不要使用两个JFrames,将JDialogparent / owner for JFrame

2)在某些事件中(正确登录后),您可以从JFrame中删除​​WindowListener(最好是JDialog

07-24 15:53