java JTextField限制输入长度

限制JTextField中输入的内容和长度只需重写PlainDocument类中的insertString方法

import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.PlainDocument;

public class JTextFieldLimit extends PlainDocument {
	
	private int limit;  //限制的长度
 
	public JTextFieldLimit(int limit) {
		super(); //调用父类构造
		this.limit = limit;
	}
	public void insertString(int offset, String str, AttributeSet attr) throws BadLocationException {
		if(str == null) return;

		//下面的判断条件改为自己想要限制的条件即可,这里为限制输入的长度
		if((getLength() + str.length()) <= limit) {
			super.insertString(offset, str, attr);//调用父类方法
		}
	}

}

重写完之后,只需在调用setDocument();方法即可。
如:
JTextField user = new JTextField();
user.setDocument(new JTextFieldLimit(5));

你可能感兴趣的:(Java)