2

やあみんな、とにかく JFormattedTextField を設定して電子メール入力の自動フォーマットを設定できるかどうか疑問に思っていました。たとえば、ユーザーがメールアドレスを入力すると、次のようなものを受け入れるようにしたい: jsmith1@smith.com

しかし、常にこの name@site.something(net,com,edu) のようにしたい

基本的に、私は常に「@」と「.」が必要です。

4

2 に答える 2

3

あなたの最善の策は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 を確認してください。ただし、要件を簡素化することもできます ;-)

于 2011-05-16T11:48:16.830 に答える
0

簡単な方法はありません (つまり、JFormattedTextField.autoEmail() のようなものはありません)。しかし、このようなコードを作成することは難しくありません。ユーザーがボタンなどを押してフィールドの内容を入力するフィールドでは、 @ と . 文字。それか、含まれているかどうかを簡単に確認し、含まれていない場合は最後に追加します。

于 2011-05-15T16:12:26.570 に答える