inputvalidation of inputdialog

M

Mark Sudau

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
 
M

markspace

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>
 

Ask a Question

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

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,763
Messages
2,569,562
Members
45,038
Latest member
OrderProperKetocapsules

Latest Threads

Top