嘿,伙计们,我想知道有没有什么方法可以让我设置一个JFormattedTextField来自动设置电子邮件输入的格式。例如,当用户输入电子邮件地址时,我希望它接受如下内容: jsmith1@smith.com
但我希望它总是像这样的name@site.something(net,com,edu)
基本上我总是想要“@”和“.”
发布于 2011-05-16 19:48:17
我认为您最好的选择是将AbstractFormatter子类化,并对电子邮件使用正则表达式,如下所示:
public class EmailFormatter extends AbstractFormatter {
@Override public Object stringToValue(String string) throws ParseException {
Matcher matcher = regexp.matcher(string);
if (matcher.matches())
return string;
throw new ParseException("Not an email", 0);
}
@Override public String valueToString(Object value) {
return value;
}
final private Pattern regexp = Pattern.compile("EMAIL REGEXP TO FIND BY YOURSELF");
}
...
JFormattedTextField email = new JFormattedTextField(new EmailFormatter());请注意,我让您为一封电子邮件找到正确的regexp;您可以使用简单的方法,或者如果您愿意,可以查看一个RFC,该RFC描述了一页长的regexp,它根据实际规格涵盖了电子邮件,但也许您可以简化您的要求;-)
发布于 2011-05-16 00:12:27
没有简单的方法(也就是说,没有JFormattedTextField.autoEmail()这样的东西)。但是编写这样的代码并不难。在用户按下按钮或其他按钮来输入字段内容的字段中,如果没有@和,就不要接受输入。人物。或者快速检查它们是否包含它,如果没有,则将其附加到末尾。
https://stackoverflow.com/questions/6009371
复制相似问题