|
> Hi All,
>
> The below given pgm is having errors while compilingdue to the
> folowing.Could anyone can help me out of this problem and make this pgm
> runsuccessful.
>
> 1. return "fieldTextCase" - fieldTextCase is not decalred inside the
> code and no such variable is present in JDK1.3
> 2. undefined variable or class name : FormattedDocument.
>
> Pls. rectify this and send me across.
>
> Thanks and Regards,
> Vijay DY.
>
> --------------------------------------------------------------------------
> --------------------------------------------------------------------------
> --------------------
>
> > -----Original Message-----
> > From: Geert Van Landeghem [SMTP:gvl@reynderseti.be]
> > Sent: Friday, May 26, 2000 12:43 AM
> > To: JAVA400-L@MIDRANGE.COM
> > Subject: Document types
> >
> > Hi,
> >
> > Has anyone used or written subclasses of the PlainDocument class? I'm
> > looking for Documenttypes
> > that allow only alphanumeric input with limited length, a valid date and
> > numeric input (with specified length and decimals)
> > So I'm looking for a "TextDocument","DateDocument" and "NumericDocument"
> > class. I would like to write these
> > classes myself but don't have the time...
> >
> > Hasn't IBM released some beans with this specific behaviour? (comparable
> > to
> > DDS-field descriptions)
> >
> > Any help would be appreciated
> [>]
>
> Hello,
>
> Here is a simple class I whipped up as an example for
> "TextDocument". It allows you
> to set the maximum number of characters entered into a text field
> and it will automatically
> force lower or upper case it desired. The "NumericDocument" is
> similar and should be
> very simple. You may want to consider having a "IntegerDocument"
> and a "DecimalDocument".
> I have build a number of these for different projects.
> "IntegerDocument" is the simplest since validation is
> the easiest (just accept a series of numbers).
>
> With a "IntegerDocument" I usually have a maximum value and minimum
> value property instead of a "maximum characters property" since
> this provides more control and gets one away from thinking of set
> positions.
>
> Note:
> As with all entry validation in Swing avoid using keyevents. We had
> a number of contractors try this and its wrong! You always control input
> via the
> Document. Remember keyevents don't work if one uses cut and paste
> or some non keyboard entry. Also, remember that in MVC architecture
> values
> are also coming from the model.
>
> Here is the code for a "TextDocument":
>
> --------------------------------------------------------------
>
> import java.awt.Toolkit;
> import javax.swing.text.*;
>
> /**
> * @author Timothy Sullivan
> * @version 1.0
> */
> public class TextDocument extends PlainDocument
> {
> // Special constant that allows unlimited character entry.
> public static int UNLIMITED = -1;
>
> // Constants that control case.
> public final static int UPPER_OR_LOWER = 0;
> public final static int UPPER = 1;
> public final static int LOWER = 2;
>
> private int fieldMaxCharacters = UNLIMITED;
>
> /**
> * TextDocument constructor comment.
> */
> public TextDocument()
> {
> super();
> }
>
> /**
> * @author Timothy Sullivan
> */
> public TextDocument(int maxCharacters)
> {
> this();
> setMaxCharacters(maxCharacters);
> }
>
> /**
> * TextDocument constructor comment.
> * @param c javax.swing.text.AbstractDocument.Content
> * @author Timothy Sullivan
> */
> protected TextDocument(AbstractDocument.Content c)
> {
> super(c);
> }
>
>
> /**
> * Gets the textCase property (int) value.
> * @return The textCase property value.
> * @see #setTextCase
> * @author Timothy Sullivan
> */
> public int getTextCase()
> {
> return fieldTextCase;
> }
>
> /**
> *
> */
> public void insertString(int offset, String s,AttributeSet
> attibuteSet) throws BadLocationException
> {
> if (s == null)
> return;
> try
> {
> if (getMaxCharacters() != FormattedDocument.UNLIMITED)
> {
> if ((getLength() + s.length()) > getMaxCharacters())
> {
> formatError();
> return;
> }
> }
> }
> catch (Exception ex)
> {
> formatError();
> return;
> }
>
> switch (getTextCase())
> {
> case UPPER :
> super.insertString(offset, s.toUpperCase(), attibuteSet);
> break;
> case LOWER :
> super.insertString(offset, s.toLowerCase(), attibuteSet);
> break;
> default :
> super.insertString(offset, s, attibuteSet);
> }
> }
>
> /**
> * Sets the textCase property (int) value.
> * @param textCase The new value for the property.
> * @see #getTextCase
> * @author Timothy Sullivan
> */
> public void setTextCase(int textCase)
> {
> fieldTextCase = textCase;
> }
> /**
> * @author Timothy Sullivan
> */
> protected void formatError()
> {
> //Toolkit.getDefaultToolkit().beep();
> }
> /**
> * @author Timothy Sullivan
> */
> public int getMaxCharacters()
> {
> return fieldMaxCharacters;
> }
> /**
> * @author Timothy Sullivan
> */
> protected boolean isValidLength(String s)
> {
> if (getMaxCharacters() == FormattedDocument.UNLIMITED)
> return true;
>
> if (s.length() > getMaxCharacters())
> return false;
>
> return true;
> }
> /**
> * @author Timothy Sullivan
> */
> public void setMaxCharacters(int maxCharacters)
> {
> fieldMaxCharacters = maxCharacters;
> }
> }
>
> >
> +---
> | This is the JAVA/400 Mailing List!
> | To submit a new message, send your mail to JAVA400-L@midrange.com.
> | To subscribe to this list send email to JAVA400-L-SUB@midrange.com.
> | To unsubscribe from this list send email to
> JAVA400-L-UNSUB@midrange.com.
> | Questions should be directed to the list owner: joe@zappie.net
> +---
>
+---
| This is the JAVA/400 Mailing List!
| To submit a new message, send your mail to JAVA400-L@midrange.com.
| To subscribe to this list send email to JAVA400-L-SUB@midrange.com.
| To unsubscribe from this list send email to JAVA400-L-UNSUB@midrange.com.
| Questions should be directed to the list owner: joe@zappie.net
+---
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.