Java 如何正确执行密码的while循环

Java 如何正确执行密码的while循环,java,arrays,jframe,store,do-while,Java,Arrays,Jframe,Store,Do While,我正在尝试创建一个register Jframe窗口来收集用户名和密码,现在我正在尝试创建一个条件,如果密码不等于“确认密码”字段,则让用户键入一个匹配的新密码。我不断收到关于Jpane错误消息的垃圾邮件,在我输入错误的密码后,它不会消失 我试过for循环、Do while循环和regular while循环。我试过一些东西 这只是创建JLabel JLabel Register = new JLabel("Register"); 下一部分是使Jlabel与用户交互 Register.

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

我试过for循环、Do while循环和regular 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存储到数组中的方法。

用if语句替换do-while循环

//inside onclick function
if(!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()
方法,而不是使用
=