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

时间:2015-01-29 20:48:57

标签: 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,我应该如何处理它们。我迷失在这里,欢迎任何形式的帮助:)

1 个答案:

答案 0 :(得分:1)

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

  1. 将登录组件包装在模式JDialog中。在您的主类中,您可以显示此对话框,它将阻止,直到对话框关闭(在对话框上调用dispose
  2. 关闭对话框并验证当前用户后,您可以按照正常情况创建主应用程序窗口
  3. 这是基于MVC的登录对话框的an example,虽然看起来很复杂,但在责任分离和引入Model-View-Controller范例

    方面,这将是一个很好的教训。