首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >TextField为空时的警告消息(javafx)

TextField为空时的警告消息(javafx)
EN

Stack Overflow用户
提问于 2018-06-04 05:03:23
回答 2查看 2.3K关注 0票数 0

我想让我的代码检查表单中的文本字段是否为空,然后显示一条弹出警告消息。我的问题是,即使文本字段已经填好了,只要我一按回车键,就会弹出一条警告消息。如有任何帮助,我们不胜感激!

  BtnEnter.setOnAction((ActionEvent e) -> {


        if  (txtfName.getText().isEmpty() | txtlName.getText().isEmpty() | 
                txtMI.getText().isEmpty() | txtStreeAdd.getText().isEmpty()
                | txtCity.getText().isEmpty() | txtZip.getText().isEmpty()
                | txtPhone.getText().isEmpty() | txtEmail.getText().isEmpty()
                | txtSecEmail.getText().isEmpty()) {



            Alert alert = new Alert(Alert.AlertType.WARNING);
            alert.setTitle("Warning");
            alert.setHeaderText("Required Fields Empty");
            alert.setContentText("The fields highlighted in red must be filled "
                    + "out.\nPlease try again.");
            alert.showAndWait();
EN

回答 2

Stack Overflow用户

发布于 2018-06-04 06:17:15

我认为部分问题可能是使用单管道|代替标准||进行OR操作。

然而,你可以采用另一种方法,它可能更容易阅读。下面是我在应用程序中处理验证的方式:

public boolean validate() {

        StringBuilder errors = new StringBuilder();

        // Confirm mandatory fields are filled out
        if (txtfName.getText().trim().isEmpty()) {
            errors.append("- Please enter a first name.\n");
        }
        if (txtlName.getText().trim().isEmpty()) {
            errors.append("- Please enter a last name.\n");
        }
        if (txtMI.getText().trim().isEmpty()) {
            errors.append("- Please enter a middle initial.\n");
        }
        if (txtStreetAdd.getText().trim().isEmpty()) {
            errors.append("- Please enter a street address.\n");
        }
        if (txtCity.getText().trim().isEmpty()) {
            errors.append("- Please enter a city.\n");
        }
        if (txtZip.getText().trim().isEmpty()) {
            errors.append("- Please enter a ZIP code.\n");
        }
        if (txtPhone.getText().trim().isEmpty()) {
            errors.append("- Please enter a phone number.\n");
        }
        if (txtEmail.getText().trim().isEmpty()) {
            errors.append("- Please enter a primary email address.\n");
        }
        if (txtSecEmail.getText().trim().isEmpty()) {
            errors.append("- Please enter a secondary email address.\n");
        }

        // If any missing information is found, show the error messages and return false
        if (errors.length() > 0) {
            Alert alert = new Alert(Alert.AlertType.WARNING);
            alert.setTitle("Warning");
            alert.setHeaderText("Required Fields Empty");
            alert.setContentText(errors.toString());

            alert.showAndWait();
            return false;
        }

        // No errors
        return true;
    }

这还有一个额外的好处,那就是让用户确切地知道丢失了什么信息。这样,您只需在用户单击操作按钮时调用validate()方法。如果validate()返回为真,您就知道您拥有所需的所有信息。

票数 2
EN

Stack Overflow用户

发布于 2018-12-09 12:47:10

你也可以不用Alert alert = new Alert(Alert.AlertType.WARNING)以另一种方式来处理它;下面是一段代码:

public boolean validateForm() {

    StringBuilder errors = new StringBuilder();

    // Confirm mandatory fields are filled out
    if (jTextField1.getText().trim().isEmpty()) {
        errors.append("- Please enter a first name.\n");
        jTextField1.requestFocusInWindow();
        JOptionPane.showMessageDialog(null, errors, "Warning!", JOptionPane.ERROR_MESSAGE);
        return false;
    }
     if (jTextField2.getText().trim().isEmpty()) {
        errors.append("- Please enter a last name.\n");
        jTextField2.requestFocusInWindow();
        JOptionPane.showMessageDialog(null, errors, "Warning!", JOptionPane.ERROR_MESSAGE);
        return false;
    }
     String s = ((JTextField)jDateChooser1.getDateEditor().getUiComponent()).getText();
   if (s.equals("")) {
    errors.append("- Please choose a date.\n");
    jDateChooser1.requestFocusInWindow();
JOptionPane.showMessageDialog(null, errors, "Warning!", JOptionPane.ERROR_MESSAGE);
return false;

}

   if (jTextField3.getText().trim().isEmpty()) {
        errors.append("- Please enter the age.\n");
        jTextField3.requestFocusInWindow();
        JOptionPane.showMessageDialog(null, errors, "Warning!", JOptionPane.ERROR_MESSAGE);
        return false;
    }




return true;    

}

通过这种方式,您可以检查用户是否知道具体缺少了什么,并向他们显示一条警告消息。为按钮添加侦听器。

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
   if(validateForm()) {
      System.out.println("First name: "+jTextField1.getText());
      System.out.println("Last name: "+jTextField2.getText());
      System.out.println("Date: "+jDateChooser1.getDate());
       System.out.println("Age: "+jTextField3.getText());
   }
} 
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50670955

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档