Java只允许输入大写字母的文本框
Java只允许输入大写字母的文本框
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
- * upper case characters. It will work even if text is pasted into from
- * the clipboard or it is altered via programmatic changes.
- * @author HAN
- *
- */
- public class UpperCaseField extends JTextField {
- /**
- *
- */
- private static final long serialVersionUID = 6854878572763032459L;
- public UpperCaseField(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();
- for (int i = 0; i < upper.length; i++) {
- upper[i] = Character.toUpperCase(upper[i]);
- }
- super.insertString(offs, new String(upper), a);
- }
- }
- }
评论暂时关闭