`
zengxx1989
  • 浏览: 295543 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

JTextField 只能输入限定的数字

阅读更多
package com.util;

import javax.swing.text.*;

/**
 * 实现让文体框只能输入限定长度的数字
 * @author 曾祥训
 *
 */
public class NumberLenghtLimitedDmt extends PlainDocument {

	/**
	 * 
	 */
	private static final long serialVersionUID = -7371120135793981234L;
	
	private int limit;

	public NumberLenghtLimitedDmt(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) {

			char[] upper = str.toCharArray();
			int length = 0;
			for (int i = 0; i < upper.length; i++) {
				if (upper[i] >= '0' && upper[i] <= '9') {
					upper[length++] = upper[i];
				}
			}
			super.insertString(offset, new String(upper, 0, length), attr);
		}
	}
}



使用
JTextField txtAge = new JTextField();
txtAge.setDocument(new NumberLenghtLimitedDmt(3));
分享到:
评论
1 楼 finux 2010-07-25  
不如使用JFormattedTextField.setFormatter(JFormattedTextField.AbstractFormatter)

相关推荐

Global site tag (gtag.js) - Google Analytics