java - 验证文本字段和无联系文本字段

标签 java swing validation textfield

我有一个 JFrame,它由一些文本字段 (10) 和一个 TextArea 组成。我想验证所有文本字段并查看它们是否不为空,并检查是否在其中一个文本字段中输入了 10 位数的联系人号码。检查文本字段后,我想启用一个提交按钮,用于将所有这些数据提交到我的数据库。

我在添加文本区域条件时使用了以下代码,但它不起作用,出现错误:- 线程“AWT-EventQueue-0”java.lang.NullPointerException 中的异常

这是我使用的代码,但它不起作用:-

public class DataEntered1 implements DocumentListener
{
    private JButton button;
    List<JTextField> txtfields=new ArrayList<JTextField>();
    JTextArea ta;
    public DataEntered1(JButton dbadd)
    {
        this.button=dbadd;
    }
    public void addTextField(JTextField txtfield)
    {
        txtfields.add(txtfield);
        txtfield.getDocument().addDocumentListener(this);
    }
    public void addTextArea(JTextArea ta)
    {
        this.ta=ta;
        ta.getDocument().addDocumentListener(this);
    }
    public boolean isDataEntered()
    {
        for(JTextField txtfield:txtfields)
        {
            if(txtfield.getText().length()==0)
            return false;
        }
        return true;
    }
    public boolean isData()
    {
        if(ta.getText().trim().length()==0)
        {
             return false;
        }
        return true;
    }
    public void insertUpdate(DocumentEvent e) {
    checkdata();
    }
    public void removeUpdate(DocumentEvent e) {
    checkdata();
    }
    public void changedUpdate(DocumentEvent e) {
    checkdata();
    }
    public void checkdata(){
    Boolean d1=isDataEntered();
    Boolean d2=isData();
    if(d1&&d2)
    button.setEnabled(true);
    }

}

最佳答案

验证文本字段是否为空可以通过从 TextView 中获取文本并将其与“”进行比较来完成

假设您的 TextField 是 textField。

if (textField.getText().trim().length>0) {
    //TextField is empty
} else {
    //TextField is not empty
}

同样,如果您想查看 10 位数字的联系电话。

if (textfield.getText().length == 10) {
    /*
     Here I'm not checking whether each character is a digit, 
     but you can do so by iterating through each character and checking
     whether it's a digit using isDigit() method
    */
} else {
    //Not 10 characters
} 

在 Java 的 swing 中跟踪 JTextField 文本内容变化的适当监听器是 DocumentListener,您必须将其添加到 JTextField 的文档中:

textField.getDocument().addDocumentListener(new DocumentListener() {
    // Enable the buttons here. 
});

关于java - 验证文本字段和无联系文本字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30919644/

相关文章:

python - wtform 上的实时验证。我可以访问前端的验证器吗?

java - 修复 JList 的最大大小并更改空单元格的外观

javascript - 在没有 DOM 操作或 jQuery 的情况下,如何在 AngularJS 中制定指令来验证电子邮件或密码确认?

java - 在 Jetty 中设置 JDBC 身份验证

java - 向 Clojure 添加类

JavaFX Canvas - 绘制后如何重新绘制 Canvas ?

java - 获取 Swing 组件的适当尺寸

regex - 使用 ko.observable 进行多电子邮件验证

java - Apache Derby 中找不到数据库错误

java - 在java中创建Xpath以根据另一个属性值选择一个属性值