Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
验证JavaFX中的空白字段_Java_Mysql_Validation_Javafx - Fatal编程技术网

验证JavaFX中的空白字段

验证JavaFX中的空白字段,java,mysql,validation,javafx,Java,Mysql,Validation,Javafx,在数据库中插入数据之前,尝试验证空白字段时出现问题。我目前正在使用Netbeans JavaFX应用程序、场景生成器和MySQL 对于此方法,它将面板内的组件传递到控制器类中 private void createProduct(ActionEvent event){ CreateProductController controller = new CreateProductController(); boolean result = controller.create(myPane); if(

在数据库中插入数据之前,尝试验证空白字段时出现问题。我目前正在使用Netbeans JavaFX应用程序、场景生成器和MySQL

对于此方法,它将面板内的组件传递到控制器类中

private void createProduct(ActionEvent event){
CreateProductController controller = new CreateProductController();
boolean result = controller.create(myPane);
if(result)
{
    System.out.println("Success");
}
}
在我的控制器类中,我得到了一个validateDetails方法,在插入之前检查空白字段,还有一个create方法

public boolean create(CreateProductUI panel){
    String name = panel.getNameTextField().getText();
    //And the rest of the components which I removed before it's very long

    //I used if else statement to check 
    boolean invalid = true;
    if(invalid){
        validateDetails(name,desc,priceStr,qtyStr,dateStr,image,category);
        return invalid;
    }else{
    invalid = false;
    Product product1 = new Product(name,desc,price,quantity,dateStr,image,category);
    product1.create();
    return invalid;
    }
}
下面是我的验证方法:

  public void validateDetails(String name,String desc,String priceStr,String qtyStr,String dateStr,Image image,int category){
    if(name.equals("")){
        JOptionPane.showMessageDialog(null,"Please enter name");       
    }else if(desc.equals("")){
        JOptionPane.showMessageDialog(null,"Please enter description");
    }else if(priceStr.equals("")){
        JOptionPane.showMessageDialog(null,"Please enter price");
    }else if(qtyStr.equals("")){
        JOptionPane.showMessageDialog(null,"Please enter quantity");
    }else if(category <= -1){
        JOptionPane.showMessageDialog(null,"Please choose category");
    }
}
public void validateDetails(字符串名称、字符串描述、字符串priceStr、字符串qtyStr、字符串dateStr、图像、整数类别){
if(name.equals(“”){
showMessageDialog(null,“请输入名称”);
}else if(描述等于(“”){
showMessageDialog(null,“请输入说明”);
}else if(priceStr.equals(“”){
showMessageDialog(空,“请输入价格”);
}else if(qtyStr.equals(“”){
showMessageDialog(空,“请输入数量”);

}否则,如果(类别将您的方法更改为:

public boolean create(CreateProductUI panel){
 String name = panel.getNameTextField().getText();
 //And the rest of the components which I removed before it's very long

 //I used if else statement to check 
 boolean valid = validateDetails(name,desc,priceStr,qtyStr,dateStr,image,category);

 if(valid) {
     Product product1 = new Product(name,desc,price,quantity,dateStr,image,category);
     product1.create();
 }

 return valid;
 }
}



public boolean validateDetails(String name,String desc,String priceStr,String qtyStr,String dateStr,Image image,int category){

 StringBuilder sb = new StringBuilder();
 if(name.equals("")){
    sb.append(" name ");
 }
 if(desc.equals("")){
    sb.append(" desc ");     
 }
 if(priceStr.equals("")){
    sb.append(" Price "); 
 }
 if(qtyStr.equals("")){
   sb.append(" Quantity ");     
 }
 if(category <= -1){
sb.append(" Category ");    
 }
 String message = sb.toString();
 if(message.length() > 0) {
   JOptionPane.showMessageDialog(null,"Please fill up these values: "+message);
   return false;
 }
 return true;
} 
公共布尔创建(CreateProductUI面板){
字符串名称=panel.getNameTextField().getText();
//还有我在很长时间之前移除的其他组件
//我使用if-else语句进行检查
boolean valid=validatedtails(名称、描述、价格、数量、日期、图像、类别);
如果(有效){
product1=新产品(名称、描述、价格、数量、日期、图片、类别);
product1.create();
}
返回有效;
}
}
公共布尔验证详细信息(字符串名称、字符串描述、字符串价格字符串、字符串qtyStr、字符串日期字符串、图像、整数类别){
StringBuilder sb=新的StringBuilder();
if(name.equals(“”){
某人附加(“姓名”);
}
如果(描述等于(“”){
某人附加(“说明”);
}
if(priceStr.equals(“”){
某人附加(“价格”);
}
如果(qtyStr.equals(“”){
某人追加(“数量”);
}
如果(类别0){
showMessageDialog(null,“请填写这些值:”+message);
返回false;
}
返回true;
} 

而不是使用
else if
只使用“
if
条件。因为在您的情况下,如果name字段不为空,它不会检查第二个条件。

仍然只检查一个字段。如果多个字段为空,我会出错。因为我使用的是if else语句,所以它只能逐个检查。还有其他方法吗我能为验证做些什么?用更好的方法更新了答案。似乎你应该提高你的核心Java技能。你说它不起作用是什么意思。到底发生了什么。更新你现在使用的问题中的代码。例如,如果我遗漏了名称和描述,错误消息应该有名称和描述n、 但它只显示名称