2015-11-05 79 views
3

功能我想创建一个函数来检查对JTextField或者JTextArea中输入值在Java中与空或不Java创建支票形式

public boolean checkFormEmpty(List<? extends JTextComponent> lsts) { 
     for (JTextComponent lst : lsts) { 
      if (!lst.getText().isEmpty()) { 
       return true; 
      } 
     } 
     return false; 
    } 

当我添加一个输入变量的值只能检查。它仅在所有JTextComponent (txtEmail & & txtPassword & & txtAreaContent)为空时才有效。

我想如果输入框为空(txtEmail || txtPassword || txtAreaContent)它仍然works.Please帮我

List<JTextComponent> lst=new ArrayList(); 
     lst.add(txtEmail); 
     lst.add(txtPassword); 
     lst.add(txtAreaContent); 
     if (!checkFormEmpty(lst)) { 
      JOptionPane.showMessageDialog(this, "Please complete the data"); 
      return; 
     } 

回答

3

您短路测试,但是你做到了什么的对面你要。

for (JTextComponent lst : lsts) { 
     if (lst.getText().isEmpty()) { 
      return false; 
     } 
} 
return true; 

当它首次发现一个非空的输入时,它停止并声明一切都有效。相反,当你找到一个空的时候,你想停下来宣布失败,但是当它不是空的时候继续检查它们。

+1

谢谢@dsh提醒我停止命令,它帮助我成功了。但是你的代码不正确,因为返回false不能停止循环。在这种情况下,你需要使用break和一个布尔变量结果。 –

+0

return语句确实停止了一个循环,并且它的整个方法都是。 – dsh

+0

谢谢。我明白 –