简体   繁体   English

Java中的KeyReleased事件的电子邮件地址验证

[英]Email address validation on KeyReleased event in java

I'm having a java form where user has to insert his/her email address. 我有一个Java表单,用户必须在其中插入他/她的电子邮件地址。 And I want to validate that email address on keyreleased event. 我想在keyreleased事件中验证该电子邮件地址。 If the format is wrong then a message should be displayed saying the format is wrong and if the address is ok another message should be displayed saying format is correct. 如果格式错误,则应显示一条消息,说明格式错误;如果地址正确,则应显示另一条消息,说明格式正确。

This is the code of emailvalidator class file, I wrote to validate my email address. 这是我编写以验证我的电子邮件地址的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();

    }
}  

Now I want to use this to validate my email address field which is on userForum.java. 现在,我想用它来验证我在userForum.java上的电子邮件地址字段。 And how can I use above validation class to validate my Email address on keyreleased event ? 以及如何使用上述验证类在keyreleased事件中验证我的电子邮件地址?

(my textfield name is txt_email and message going to display on lbl_msg label.) (我的文本字段名称是txt_email,消息将显示在lbl_msg标签上。)

Use a DocumentListener on the underlying document as described here: 如下所述在基础文档上使用DocumentListener:

Value Change Listener to JTextField 值更改侦听器到JTextField

Using a KeyListener instead means that if a user pastes in the email address, it won't be validated. 相反,使用KeyListener意味着如果用户粘贴了电子邮件地址,则不会对其进行验证。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM