首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Java只允许输入数目字的文本框

2012-08-01 
Java只允许输入数字的文本框package com.hanimport javax.swing.JTextFieldimport javax.swing.text.Att

Java只允许输入数字的文本框

package com.han;import javax.swing.JTextField;import javax.swing.text.AttributeSet;import javax.swing.text.BadLocationException;import javax.swing.text.Document;import javax.swing.text.PlainDocument;/** * Customized fields can easily be created by extending the model  * and changing the default model provided. For example,  * the following piece of code will create a field that holds only  * digit characters. It will work even if text is pasted into from  * the clipboard or it is altered via programmatic changes. * @author HAN * */public class DigitOnlyField extends JTextField {   /** *  */private static final long serialVersionUID = 8384787369612949227L;public DigitOnlyField(int cols) {// super() 可以被自动调用,但是有参构造方法并不能被自动调用,只能依赖// super关键字显示地调用父类的构造方法        super(cols);    }    protected Document createDefaultModel() {        return new UpperCaseDocument();    }    static class UpperCaseDocument extends PlainDocument {        /** *  */private static final long serialVersionUID = -4170536906715361215L;public void insertString(int offs, String str, AttributeSet a)            throws BadLocationException {            if (str == null) {                return;            }            char[] upper = str.toCharArray();            String filtered = "";            for (int i = 0; i < upper.length; i++) {            if (Character.isDigit(Character.codePointAt(upper, i))){            filtered += upper[i];            }            }            super.insertString(offs, filtered, a);        }    }}

热点排行