两个if语句以Java代码执行

时间:2019-04-09 15:45:27

标签: java netbeans

我目前正在尝试验证员工登录表单。但是我在验证输出中意识到,每当我向用户名文本字段输入值时,它仍然会弹出消息“请输入您的用户名”,然后弹出“无效凭据”消息框。这是我的代码如下:

 String username = usernameTxt.getText();
    String password = passwordTxt.getText();


    if  (username.contains(""))
  {
        JOptionPane.showMessageDialog(null,"Please Enter Your Username Credentials.");
    }
    else  if (password.contains (""))
  {
        JOptionPane.showMessageDialog(null,"Please Enter Your Password Credentials.");
    } 
   else if (password.contains ("") && (username.contains("")))
  {
        JOptionPane.showMessageDialog(null,"Please Enter Your Login Credentials.");
    }
   if ((username.contains("staff") && password.contains ("pass")))

    {
        JOptionPane.showMessageDialog(null,"Login Successfull","Success",JOptionPane.INFORMATION_MESSAGE);
        passwordTxt.setText(null);
        usernameTxt.setText(null);
        staffdashboard sd = new staffdashboard();
        sd.setVisible(true);
        this.setVisible(false);   
    }    
    else  
    {
        JOptionPane.showMessageDialog(null,"Invalid Login Details","Login Error",JOptionPane.ERROR_MESSAGE);
        passwordTxt.setText(null);
        usernameTxt.setText(null);
    }

enter user message box invalid login details message box

我遗漏了什么?如何停止立即输出2个消息框的表单?

2 个答案:

答案 0 :(得分:2)

问题出在第一个if语句中:username.contains("")

每个字符串包含空字符串。 您应该将其替换为if("".equals(username))

或使用StringUtils.isBlank(username);

所有contains("")

都一样

答案 1 :(得分:0)

@Naya的答案是正确的,但是您可能想要删除任何空格,前提是不允许将它们用作有效输入,所以:

if  (username.trim().equals("")) ...
else  if (password.trim.equals("")) ...
...