在 Java 中验证密码后调用新的 window

Invoke a new window after password verification in Java

我正在研究 RMI 客户端服务器程序。对于我的客户端 class,我希望在启动客户端时使用 window 来验证密码。如果密码错误,将出现一条弹出消息,如果密码正确,则当前 window 需要关闭,并且应出现另一个带有与服务器一起使用的选项的 window。此类操作的代码如下所示:

//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,目前是密码检查 window。请记住,我试图将所有客户端图形用户界面和功能集中在一个 class 中。两个windows是不是应该是jPane,应该怎么处理。我在这里迷路了,所以欢迎任何形式的帮助:)

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

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

这是an example of a MVC based login dialog, while it might seem complicated, it would be a good lesson in separation of responsibility and introduction in to the Model-View-Controller范式