やあみんな、とにかく JFormattedTextField を設定して電子メール入力の自動フォーマットを設定できるかどうか疑問に思っていました。たとえば、ユーザーがメールアドレスを入力すると、次のようなものを受け入れるようにしたい: jsmith1@smith.com
しかし、常にこの name@site.something(net,com,edu) のようにしたい
基本的に、私は常に「@」と「.」が必要です。
やあみんな、とにかく JFormattedTextField を設定して電子メール入力の自動フォーマットを設定できるかどうか疑問に思っていました。たとえば、ユーザーがメールアドレスを入力すると、次のようなものを受け入れるようにしたい: jsmith1@smith.com
しかし、常にこの name@site.something(net,com,edu) のようにしたい
基本的に、私は常に「@」と「.」が必要です。
あなたの最善の策は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());
電子メールの正しい正規表現を発見できることに注意してください。簡単な方法で、または必要に応じて、実際の仕様に従って電子メールをカバーする 1 ページの長い正規表現を記述している RFC を確認してください。ただし、要件を簡素化することもできます ;-)
簡単な方法はありません (つまり、JFormattedTextField.autoEmail() のようなものはありません)。しかし、このようなコードを作成することは難しくありません。ユーザーがボタンなどを押してフィールドの内容を入力するフィールドでは、 @ と . 文字。それか、含まれているかどうかを簡単に確認し、含まれていない場合は最後に追加します。