Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.programmer > #13413 > unrolled thread
| Started by | Mark Sudau <news@sudau.net> |
|---|---|
| First post | 2012-04-05 14:48 +0200 |
| Last post | 2012-04-05 09:31 -0700 |
| Articles | 2 — 2 participants |
Back to article view | Back to comp.lang.java.programmer
inputvalidation of inputdialog Mark Sudau <news@sudau.net> - 2012-04-05 14:48 +0200
Re: inputvalidation of inputdialog markspace <-@.> - 2012-04-05 09:31 -0700
| From | Mark Sudau <news@sudau.net> |
|---|---|
| Date | 2012-04-05 14:48 +0200 |
| Subject | inputvalidation of inputdialog |
| Message-ID | <4f7d94b5$0$7609$9b4e6d93@newsspool1.arcor-online.net> |
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
[toc] | [next] | [standalone]
| From | markspace <-@.> |
|---|---|
| Date | 2012-04-05 09:31 -0700 |
| Message-ID | <jlkhcq$l53$1@dont-email.me> |
| In reply to | #13413 |
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>
[toc] | [prev] | [standalone]
Back to top | Article view | comp.lang.java.programmer
csiph-web