0

NetBeans で、、 、などの無効な文字をJFormattedTextField許可しないように設定するにはどうすればよいですか?|[]

気にしないで、解決策を見つけました:

MaskFormatter formatter = null;

        try {
            //# - Any valid number, uses Character.isDigit.
            //' - Escape character, used to escape any of the special formatting characters.
            //U - Any character (Character.isLetter). All lowercase letters are mapped to upper case.
            //L - Any character (Character.isLetter). All upper case letters are mapped to lower case.
            //A - Any character or number (Character.isLetter or Character.isDigit)
            //? - Any character (Character.isLetter).
            //* - Anything.
            //H - Any hex character (0-9, a-f or A-F).
            formatter = new MaskFormatter("******************************");
            formatter.setInvalidCharacters("|[]");
        } catch (java.text.ParseException ex) {
        }

次に、GUI で JFormattedTextField を右クリックし、myFormattedTextField = new javax.swing.JFormattedTextField();カスタム作成を選択する横のドロップダウン ボックスで [コードのカスタマイズ] をクリックし、次のようにフォーマッタを JFormattedTextField に追加します。myFormattedTextField = new javax.swing.JFormattedTextField(formatter);

これがいつか他の誰かを助けることを願っています。

4

1 に答える 1

1

最も快適な方法は、DocumentListenerを追加し、そこにパターンを追加することです。これは、挿入されたJFormattedTextField可能性のある文字(文字のブロック)または文字ごとに追加された文字の評価者です。両方のメソッドをオーバーライドすることをお勧めします。

insertUpdate()

changedUpdate()//Plain text components don't fire these events.

Pattern p = Pattern.compile("decision char filtering")文字の挿入されたブロックの場合は、直接実装する方が適切です

于 2011-12-08T18:08:37.853 に答える