java - Java中密码验证后调用新窗口

标签 java swing rmi

我正在开发 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 以及我应该如何处理它们。我在这里迷路了,所以欢迎任何形式的帮助:)

最佳答案

您想要尝试分离和隔离责任。也就是说,登录 View 除了从用户那里收集凭据并验证这些凭据之外,不应该执行任何其他操作。它不应该负责将用户移动到下一个 View ,该责任属于应用程序(或 Controller )的不同部分

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

这是an example基于 MVC 的登录对话框,虽然它可能看起来很复杂,但这对于责任分离和介绍 Model-View-Controller 来说是一个很好的教训。范例

关于java - Java中密码验证后调用新窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28224314/

相关文章:

java - 断言不起作用

java - 如何修复 JTextField 上的按键监听器?

java - 在虚拟机上导出rmi

java - JVM 方法调用和远程调用在性能上有什么区别?

java - 我怎样才能使这段代码更有效率?循环和大数据

java - SSL 证书 - 不存在主题备用名称

java - KeyPairGenerator.generateKeyPair() 线程安全吗?

java - Groovy 基础——运行时行为和封装

java - 如何在框架内调整大小和绘制组件

java - 使用 RMI 在远程系统上打开记事本