我正在尝试创建一个收集用户名和密码的注册 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()此外,在比较字符串时应该使用该方法,而不是使用==.
添加回答
举报
0/150
提交
取消