inputvalidation of inputdialog

Discussion in 'Java' started by Mark Sudau, Apr 5, 2012.

  1. Mark Sudau

    Mark Sudau Guest

    Hi folks,

    I need an InputDialog where I can validate the the users input. The
    validation is variable to the belongings of business rules. The
    validation my be a number, regular expression, length or some other kind
    of validation I actually haven't thought of.

    It is not wanted to enter data and validate after pressing ok. The
    validation must be done immediately after pressing a key.

    I already thought of a KeyListener but using a KeyListener makes it
    difficult to validate the length of a regular expression.

    Does any one have an idea?

    Kind regards
    Mark
    Mark Sudau, Apr 5, 2012
    #1
    1. Advertising

  2. Mark Sudau

    markspace Guest

    On 4/5/2012 5:48 AM, Mark Sudau wrote:
    > I already thought of a KeyListener but using a KeyListener makes it
    > difficult to validate the length of a regular expression.



    A key listener is probably the wrong direction entirely. For length,
    make a Document and set the text field's document to that, or use a
    document listener, or use a DocumentFilter.

    Something like (untested):

    DocumentFilter filter = new DocumentFilter() {
    private final int MAX_LEN = 42;
    public void insertString( FilterBypass fb,
    int offset, String string, AttributeSet att )
    {
    if( fb.getDocument().getLength() + string.getLength()
    < MAX_LEN )
    {
    fb.insertString( offset, string, attr );
    }
    }
    public void replaceString( FilterBypass fb,
    int offset, String string, AttributeSet att )
    {
    fb.replaceString( offset, string, attr );
    }
    };


    In general, use the validators that Java already provides, don't roll
    your own.

    <http://docs.oracle.com/javase/tutorial/uiswing/misc/focus.html>

    (You have to scroll down a bit to get to the part about validating
    input. It's there though, honest.)


    Other links:


    <http://docs.oracle.com/javase/tutorial/uiswing/components/formattedtextfield.html>

    <http://docs.oracle.com/javase/7/docs/api/javax/swing/InputVerifier.html>

    <http://docs.oracle.com/javase/7/docs/api/javax/swing/text/DocumentFilter.html>

    PlainDocument is an AbstractDocument that you could easily extend. I
    think PlainDocument is the model used for all plain text fields in Swing
    as well as the unformatted (plain) text areas.

    <http://docs.oracle.com/javase/7/docs/api/javax/swing/text/PlainDocument.html>
    markspace, Apr 5, 2012
    #2
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Li Chen
    Replies:
    9
    Views:
    123
    Li Chen
    Sep 29, 2008
Loading...

Share This Page