【问题标题】:Invoke a new window after password verification in Java在Java中验证密码后调用一个新窗口
【发布时间】:2023-11-16 09:00:01
【问题描述】:

我正在开发一个 RMI 客户端服务器程序。对于我的客户端类,我希望在启动客户端时有一个用于验证密码的窗口。如果密码错误,将出现一条弹出消息,如果密码正确,则需要关闭当前窗口,并出现另一个带有服务器选项的窗口。这种操作的代码是这样的:

//Button for checking password - actionListener
if(!checkPass(btnLogin.getPassword())
  JOptionPane.showMessageDialog(null,"ALERT MESSAGE",JOptionPane.WARNING_MESSAGE);
else
  // do something so this window closes and a new window, 
  //with say one button for example, pop-ups

我应该怎么做这样的事情?当前代码只是具有远程方法的客户端的主干,它还继承自jFrame,这是当前的密码检查窗口。请记住,我正在尝试将所有客户端 gui 和功能保留在一个类中。这两个窗口是否应该是jPanes,我应该如何处理它们。我在这里迷路了,所以欢迎任何形式的帮助:)

【问题讨论】:

    标签: java swing rmi


    【解决方案1】:

    您想尝试分离和隔离责任。也就是说,登录视图应该什么都不做,然后从用户那里收集凭据并验证这些凭据。它不应该负责将用户移动到下一个视图,该责任属于您的应用程序(或控制器)的不同部分

    1. 将登录组件包装在模态JDialog 中。在你的主类中,你可以显示这个对话框,它会阻塞直到对话框关闭(在对话框上调用dispose
    2. 关闭对话框并验证当前用户后,您可以正常创建主应用程序窗口

    这是基于 MVC 的登录对话框的 an example,虽然它可能看起来很复杂,但这将是一个很好的职责分离和引入 Model-View-Controller 范式的课程

    【讨论】:

      最近更新 更多