//txt_address1.setDocument(new LimitedDocument(25)); class LimitedDocument extends PlainDocument { private static final long serialVersionUID = 1L; private int maxLength = -1;// 允許的最大長度 private String allowCharAsString = null;// 允許的字符串格式(0123456789) public LimitedDocument() { super(); } public LimitedDocument(int maxLength) { super(); this.maxLength = maxLength; } public void insertString(int offset, String str, AttributeSet attrSet) throws BadLocationException { if (str == null) { return; } if (allowCharAsString != null && str.length() == 1) { if (allowCharAsString.indexOf(str) == -1) { return;// 不是所要求的字符格式,就直接返回,不進行下面的添加 } } char[] charVal = str.toCharArray(); String strOldValue = getText(0, getLength()); char[] tmp = strOldValue.toCharArray(); if (maxLength != -1 && (tmp.length + charVal.length > maxLength)) { Toolkit.getDefaultToolkit().beep();// 發出一個警告聲 return;// 長度大於指定的長度maxLength,也直接返回,不進行下面的添加 } super.insertString(offset, str, attrSet); } public void setAllowChar(String str) { allowCharAsString = str; } }