我正在研究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和功能都保留在一个类中。这两个窗口应该是jPane还是我应该如何处理。我在这里迷路了,欢迎任何帮助:)

最佳答案

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


将登录组件包装在模式JDialog中。在您的主类中,您可以显示此对话框,它将一直阻塞直到对话框关闭(在对话框上调用dispose
关闭对话框并验证当前用户后,您可以按常规创建主应用程序窗口


这是基于MVC的登录对话框的an example,虽然它看起来很复杂,但是在责任分离和Model-View-Controller范式介绍方面将是一个很好的课程

10-07 19:08
查看更多