在java中正确注销用户

时间:2015-03-21 03:08:54

标签: java swing logging login

我使用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。如果你们不明白我在说什么,请尽快提问,尽快回答。我不太擅长解释我的情况我很抱歉:'(

1 个答案:

答案 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?"