如何正确地为密码做一个 while 循环

我正在尝试创建一个收集用户名和密码的注册 Jframe 窗口 我正在尝试创建一个条件,如果密码不等于确认密码字段,让用户输入匹配的新密码。我不断收到 Jpane 错误消息的垃圾邮件,并且在我输入错误的密码后它不会消失。


我尝试过 for 循环、Do while 循环和常规 while 循环。我试过一些东西


这只是创建 JLabel


  JLabel Register = new JLabel("Register");

下一部分是使 Jlabel 与用户交互


  Register.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));

  Register.addMouseListener(new MouseAdapter() {


  @Override

  public void mouseClicked(MouseEvent e) {

当点击 Register 时,会发生一些事情。


这些是我创建的 4 个变量,用于跟踪用户输入。


   String password = passwordField.getText();

   String confirmpass = passwordField_1.getText();

   String name =  userName.getText();       

   String email = createEmail.getText();

这是我开始 do while 循环以确认密码是否匹配的地方,我将重复它


  do {  

      JOptionPane.showMessageDialog(null, "Passwords do not match", "Login Error", JOptionPane.ERROR_MESSAGE);

        password = "";

        confirmpass = "";


  }while(password == confirmpass);

  dispose();


  //System.out.println("Testing the Register Button lol or label " + name);


}

我希望能够有一个条件来确保密码在退出屏幕之前匹配。另外,如果可能的话,有人可以告诉我一种将来自 JFrame 的用户输入存储到数组中的方法。


慕仙森
浏览 94回答 1
1回答

天涯尽头无女友

用 if 语句替换你的 do-while 循环//inside onclick functionif(!confirm_pass.equals(password)){    JOptionPane.showMessageDialog(null, "Passwords do not match", "Login Error",     JOptionPane.ERROR_MESSAGE);    return; //the return keyword will stop the method to go further.}dispose();如果密码不同,do-while 循环将毫无意义,因为它们只会无限循环。equals()此外,在比较字符串时应该使用该方法,而不是使用==.
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java