我使用Eclipse作为我的IDE
我已经拥有登录代码 - 检查用户和传递是否匹配 - 检查DB中的帐户会话列是否已登录"登录"。 if false登录用户,否则提示用户
退出时,我有一个退出按钮,点击该按钮会更改“已登录”状态。进入'退出'。 现在问题是当用户没有单击注销按钮而只是关闭应用程序时。当框架关闭时,我尝试制作一个窗口监听器。然后将其重定向到注销按钮,它有点解决了我的问题,所以当“&...”窗口关闭时,我指定每一帧重定向到注销按钮操作。
我的应用程序是这样的:我的应用程序有多个框架。登录后有主页,然后还有4个按钮可以指向其他模块。在主页中,当您单击module_A时,主页会处理并弹出module_A框架,如果您单击'返回'按钮模块_A再次配置和主页弹出,单击module_b配置主页并弹出module_b框架等等...
Scenerio 1:
〜登录 - 更改用户状态'已退出'登录'登录将用户从登录页面重定向到主页
〜在主页上我忘记了我会做什么,所以我只是关闭了应用程序,因为我有一个倾听者关闭窗口'这将改变'登录'国家退出'它很好。
Scenerio 2:
〜登录 - 更改用户状态'已退出'登录'登录将用户从登录页面重定向到主页
〜在主页上我点击module_A,然后处理主页并将更改“登录”'状态已退出'因为主页窗口关闭了。
我如何修复scenerio 2?因为关闭一个框架会导致我退出,但我仍然只使用名为moduleA的不同框架的应用程序
PS。如果你们不明白我在说什么,请尽快提问,尽快回答。我不太擅长解释我的情况我很抱歉:'(
答案 0 :(得分:2)
所以我猜你的东西是这样的:
void onWindowDispose() {
logMeOut();
}
我建议使用类似计数器的东西:
int windowCount;
void onWindowCreate() {
++windowCount;
}
void onWindowDispose() {
--windowCount;
if(windowCount == 0)
logMeOut();
}
你可能不会使用完全一个计数器,但我希望你能得到这个想法。您应该只在所有窗口关闭时注销,而不仅仅是其中任何一个窗口。
另外,如果"多个帧"表示"多个JFrame",请参阅"The Use of Multiple JFrames, Good/Bad Practice?"