为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕仙森 2023-04-13 10:57:40
我正在尝试创建一个收集用户名和密码的注册 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 的用户输入存储到数组中的方法。
查看完整描述

1 回答

?
天涯尽头无女友

TA贡献1831条经验 获得超9个赞

用 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()此外,在比较字符串时应该使用该方法,而不是使用==.


查看完整回答
反对 回复 2023-04-13
  • 1 回答
  • 0 关注
  • 93 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信