在Java中对KeyReleased事件进行电子邮件地址验证

时间:2017-05-19 17:06:08

标签: java validation

我有一个java表单,用户必须插入他/她的电子邮件地址。我想在keyreleased事件上验证该电子邮件地址。如果格式错误,则应显示一条消息,说明格式错误,如果地址正常,则应显示另一条消息,说明格式正确。

这是emailvalidator类文件的代码,我写信用来验证我的电子邮件地址。

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class EmailValidator {

    private Pattern pattern;
    private Matcher matcher;
    private static final String EMAIL_PATTERN =
            "^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@"
            + "[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$";

    public EmailValidator() {
        pattern = Pattern.compile(EMAIL_PATTERN);
    }

    public boolean validate(final String hex) {

        matcher = pattern.matcher(hex);
        return matcher.matches();

    }
}  

现在我想用它来验证userForum.java上的电子邮件地址字段。我如何使用上面的验证类来验证关键发布事件的电子邮件地址?

(我的文本域名是txt_email,消息将显示在lbl_msg标签上。)

1 个答案:

答案 0 :(得分:0)

在底层文档上使用DocumentListener,如下所述:

Value Change Listener to JTextField

使用KeyListener意味着如果用户粘贴在电子邮件地址中,则无法验证。