TextField中进行字符的输入限制

原创 2004年09月20日 15:09:00

1)java.awt.TextField 版本,我实在是想不出其他办法, 这个办法是比较低劣的:

public void setInputLimited(int min , int max  TextField text){

  t.addKeyListener(new java.awt.event.KeyAdapter (){
             public void keyPressed(KeyEvent e) {
                 if(e.getKeyCode() >max||e.getKeyCode()                     t.setText(t.getText().substring(0,t.getText().length() -1) );
                 }
             }
        });

}

2)javax.swing.JTextField

JTextField和TextField不一样, 他有一个setDocument(Document doc)方法, 可以来设置输入。

import java.awt.*;
import javax.swing.text.*;

public void setInputLimited(int min , int max,JtextField text){

   text.setDocument(new NumberOnlyDocument());

}


public class NumberOnlyDocument
        extends PlainDocument {
    private boolean haveDot = false;
    private int length = 0;
    private double max = Double.MIN_VALUE, min = Double.MAX_VALUE;
  
    public NumberOnlyDocument(double max, double min) {
        if (max >= min) {
            this.max = max;
            this.min = min;
        }
       
    }

  
  

    public void insertString(int offs, String str, AttributeSet a) throws
            BadLocationException {

        if (str == null) {
            return;
        }
        char[] number = str.toCharArray();
        for (int i = 0; i < number.length; i++) {
            if (offs == 0) {
                if (! (number[i] >= '0' && number[i] <= '9' || number[i] == '.' ||
                        number[i] == '-' || number[i] == '+')) {
                    if (offs == length - 1) {
                        remove(offs + i, 1);
                    }
                    else {
                        return;
                    }

                }
                else {
                    length++;
                }
            }
            else {
                if (!haveDot) {
                    if (! (number[i] >= '0' && number[i] <= '9' || number[i] == '.')) {
                        if (offs == length - 1) {
                            remove(offs + i, 1);
                        }
                        else {
                            return;
                        }
                    }
                    else {
                        if (number[i] == '.') {
                            haveDot = true;
                        }
                        length++;
                    }
                }
                else {
                    if (! (number[i] >= '0' && number[i] <= '9')) {
                        if (offs == length - 1) {
                            remove(offs + i, 1);
                        }
                        else {
                            Toolkit.getDefaultToolkit().beep();
                            return;
                        }
                    }
                    else {
                        length++;
                    }
                }
            }
        }
      
        super.insertString(offs, new String(number), a);
    }
}

iOS开发之textField字符长度限制的方法

在微信公众号上看到一篇技术文章,是关于UITextField输入时限制字符长度的方法,突然想到当时练习时刚好也遇到这个问题,因此整理一下。...
  • qinghao_G
  • qinghao_G
  • 2016年12月17日 10:08
  • 1998

[IOS]UITextField限制字符输入

[IOS]UITextField限制字符输入 #import "ViewController.h" #define DEF_CARD @"1234567890Xx" /// 只能输入数字 #d...
  • u012881779
  • u012881779
  • 2015年07月09日 17:34
  • 2534

iOS关于UITextField限制输入字符操作处理

源码下载: https://github.com/DMDavid/TextInputLimit 功能模板: 支付宝中在 ‘设置’ 界面昵称设置里,UITextField 是可以输入16个中文昵...
  • mickeyYB_520
  • mickeyYB_520
  • 2016年02月23日 15:29
  • 1279

textfield、 textView内容长度限制(中文输入越界)附带:textView回车效果,判断禁止字符

error: NSMutableRLEArray replaceObjectsInRange:withObject:length:: Out of bounds 实现textView的代理 - (v...
  • zhaochunyang_0726
  • zhaochunyang_0726
  • 2015年01月27日 11:02
  • 1754

iOS——可限制最大字符的textfield

  • 2015年11月06日 11:15
  • 115KB
  • 下载

iOS开发之textField字符长度限制的方法

在微信公众号上看到一篇技术文章,是关于UITextField输入时限制字符长度的方法,突然想到当时练习时刚好也遇到这个问题,因此整理一下。...
  • qinghao_G
  • qinghao_G
  • 2016年12月17日 10:08
  • 1998

ios textfield限制中文输入长度

之前做了一个功能,就是要求限制用户在密码输入框中输入12位长度以内的密码,如果超出,则不显示,也就是不能再输入了。当时在往上面找了很多的实现方式,发现都不能实现我想要的效果,因为如果是英文状态下,那很...
  • lisuo1234
  • lisuo1234
  • 2015年10月15日 23:09
  • 741

IOS textField 输入个数限制

一.问题描述:当我们对textFiled输入的字数进行限制的时候比如 textField.text.length0 ,对于这个限制当我们用第三方的键盘无论是搜狗还是百度都是没有问题的,但是当我们用IO...
  • W10207010218
  • W10207010218
  • 2016年04月06日 17:26
  • 408

iOS限制textfield输入两位小数逻辑思维步骤记录(Swift)

先贴代码,逻辑思维在下面。 import UIKit class ViewController: UIViewController ,UITextFieldDelegate{ v...
  • tundraw
  • tundraw
  • 2016年03月14日 11:00
  • 873

iOS - TextField的一些输入限制

iOS - TextField的一些输入限制TextField限制输入类型和字节数#import "ViewController.h"#define NUMBERS @"0123456789\n" /...
  • EmulateStep
  • EmulateStep
  • 2016年07月02日 16:10
  • 365
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:TextField中进行字符的输入限制
举报原因:
原因补充:

(最多只允许输入30个字)