验证自制

Validations selfmade

所以我正在尝试验证 javaFX 中的一些 TextFields,在我早期的程序中这已经奏效,但我现在似乎不起作用,而且我无法弄清楚!好几个小时都浪费了!

这是我编程中的弃儿 这是一个 class 来简化

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();
   }
}

这是我的第二个class

 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。这是一个预订系统!

问题是它没有验证。当我单击 "Create member" 按钮时,它只是进入了支付页面,但它不应该这样,因为在 Firstname 和 Lastname TextField 中没有输入任何信息! 希望你能帮我 !!

问候 亚历克斯

我认为你的 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();
}

话虽这么说,抛出一般异常并不是首选。同时,异常抛出在某种程度上是一种昂贵的流程执行方式。您可以将您的代码更改为仅 return 是否已验证的布尔值,然后检查 return 值而不是抛出和捕获异常。只是一个想法。

我改成了

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

}

问题是它必须是空的才能成功验证...太愚蠢了。