Java examples for Swing:JTextComponent
Limiting the Capacity of a JTextComponent using custom DocumentFilter
import javax.swing.JTextField; import javax.swing.text.AbstractDocument; import javax.swing.text.AttributeSet; import javax.swing.text.BadLocationException; import javax.swing.text.DocumentFilter; import javax.swing.text.JTextComponent; public class Main { public static void main(String[] args) throws Exception { JTextComponent textComponent = new JTextField(); AbstractDocument doc = (AbstractDocument) textComponent.getDocument(); doc.setDocumentFilter(new FixedSizeFilter(10)); }//from www. j av a 2 s .c o m } class FixedSizeFilter extends DocumentFilter { int maxSize; public FixedSizeFilter(int limit) { maxSize = limit; } public void insertString(DocumentFilter.FilterBypass fb, int offset, String str, AttributeSet attr) throws BadLocationException { replace(fb, offset, 0, str, attr); } public void replace(DocumentFilter.FilterBypass fb, int offset, int length, String str, AttributeSet attrs) throws BadLocationException { int newLength = fb.getDocument().getLength() - length + str.length(); if (newLength <= maxSize) { fb.replace(offset, length, str, attrs); } else { throw new BadLocationException( "New characters exceeds max size of document", offset); } } }