|
> 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-2024 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.