验证自制

时间:2015-05-07 14:40:36

标签: java user-interface javafx javafx-2

所以我试图在javaFX中验证一些TextFields,在我早期的程序中这已经有效,但我现在似乎没有工作,我无法弄明白!浪费了几个小时!

这是我编程的弃儿 这是一个简化的课程

public class ValidateHelp {

private Text actiontarget = new Text();


public void validateName(TextField firstname, TextField lastname) throws Exception
{
   if(firstname.getText().equals(""))
    {


        if(lastname.getText().equals(""))
            {

            }
        else
        {
            throw new Exception();
        }
    } 
   else
   {
       throw new Exception();
   }
}

这是我的第二堂课

 boolean useTry = true;


    try 
    {
        vh.validateName(firstnameTextField, lastnameTextField);
        firstnameTextField.setText(firstnameTextField.getText());
        lastnameTextField.setText(lastnameTextField.getText());

    } 
    catch (Exception e) 
    {
        actiontarget.setText("Indtast et fornavn");
        actiontarget.setText("Indtast et efternavn");
        useTry = false;
    }

if(useTry)
        {
             paymentPage();
        }

IF语句只检查验证,当一切正常时,它会转到paymentPage。这是一个预订系统!

问题是它没有验证。当我点击"创建成员"按钮我已经让它进入​​付款页面,它不应该,因为在名字和姓氏TextField中没有提供任何信息! 希望你能帮我 !!

此致 亚历

2 个答案:

答案 0 :(得分:0)

我认为你的if语句是相反的。 如果任一字段为空,是否不希望它抛出异常?

而不是

if(firstname.getText().equals(""))
{


    if(lastname.getText().equals(""))
        {

        }
    else
    {
        throw new Exception();
    }
} 
else
{
    throw new Exception();
}

我想你想要

if(firstname.getText().equals("") || lastname.getText().equals("")){
    throw new Exception();
}

话虽如此,抛出一般例外并不是首选。与此同时,异常抛出在某种程度上是一个昂贵的流程执行明智。你可以改变你的代码,只返回一个是否经过验证的布尔值。然后检查返回值而不是抛出和捕获异常。只是一个想法。

答案 1 :(得分:0)

我把它改成了

if(methodName.getText().length() > 1)
{

}

问题在于,验证成功是空的......这太愚蠢了。