Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p><strong>You use the PlainDocument using for JTextField | JTextArea</strong> </p> <p><strong>Example</strong></p> <pre><code>import javax.swing.text.AttributeSet; import javax.swing.text.BadLocationException; import javax.swing.text.PlainDocument; @SuppressWarnings("serial") public class UserPlainDocument extends PlainDocument { private final int LIMIT_OF_CHARS; private final int DATA_TYPE; private final char[] SKIPPING_CHARS; public final static int ALL_DATA_TYPES = 1; public final static int DATA_TYPE_OF_INTEGER = 2; public final static int DATA_TYPE_OF_DOUBLE = 3; public UserPlainDocument(int limitOfChars, int dataType) { if(4 &lt; dataType || 0 &gt; dataType) throw new IllegalArgumentException( "This dataType value not available " + "please check the value."); this.LIMIT_OF_CHARS = limitOfChars; this.DATA_TYPE = dataType; this.SKIPPING_CHARS = null; } public UserPlainDocument(int limitOfChars, char[] skippingChars) { this.LIMIT_OF_CHARS = limitOfChars; this.SKIPPING_CHARS = skippingChars; this.DATA_TYPE = 0; } @Override public void insertString(int offs, String charAt, AttributeSet set) throws BadLocationException { if(offs + charAt.length() &lt;= LIMIT_OF_CHARS) try { switch (DATA_TYPE) { case DATA_TYPE_OF_INTEGER: Integer.parseInt(charAt); super.insertString(offs, charAt, set); break; case DATA_TYPE_OF_DOUBLE: if(charAt.equals(".") &amp;&amp; getText(0, offs). indexOf(".") == -1) { super.insertString(offs, charAt, set); break; } Double.parseDouble(charAt); super.insertString(offs, charAt, set); break; case ALL_DATA_TYPES: super.insertString(offs, charAt, set); break; default: for (int i = 0; i &lt; SKIPPING_CHARS.length; i++) if(charAt.equals(String.valueOf(SKIPPING_CHARS[i]))) throw new BadLocationException("", offs); super.insertString(offs, charAt, set); break; } } catch (NumberFormatException e) { throw new BadLocationException(e.getMessage(), offs); } else throw new BadLocationException("", offs); } } </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload