`

DecimalDocument 限制只能输入数字的TextField

 
阅读更多
import javax.swing.JTextField;
import javax.swing.text.Document;

/**
 * 整数输入框</p>  
 * 
 * @author luojialin
 * @since 2014-2-24
 */
public class IntegerTextField extends JTextField {
	
	  public IntegerTextField() {
	        this(new IntegerDocument(), null, 0);
	    }

	    public IntegerTextField(String text) {
	        this(new IntegerDocument(), text, 0);
	    }

	    public IntegerTextField(int columns) {
	        this(new IntegerDocument(), null, columns);
	    }

	    public IntegerTextField(String text, int columns) {
	        this(new IntegerDocument(), text, columns);
	    }

	    public IntegerTextField(Document doc, String text, int columns) {
	    	super(doc,text,columns);
	    	if(!(doc instanceof  IntegerDocument))	
	    		 throw new IllegalArgumentException("Document must be IntegerDocument");
	    	
	    }

}

 

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

public class IntegerDocument extends PlainDocument
{

    public void insertString(int index, String s, AttributeSet a)
            throws BadLocationException {

        boolean noval = false;

        if ((s == null) || (s.length() == 0)) {
            return;
        }

        StringBuffer t = new StringBuffer(getLength() + s.length());

        t.append(getText(0, index));
        t.append(s);
        t.append(getText(index, getLength() - index));

        try {
            Integer.parseInt(t.toString().trim());
        } catch (NumberFormatException e) {
            noval = true;

            if (noval) {
                Toolkit.getDefaultToolkit().beep();

                return;
            }
        }

        super.insertString(index, s, a);
    }


}

  

 

 

分享到:
评论

相关推荐

    iOS 键盘输入限制(只能输入字母,数字,禁止输入特殊符号)

    以下将详细介绍如何在iOS中实现这样的键盘输入限制。 首先,我们需要创建一个UITextField,并为其指定一个适当的键盘类型。在iOS中,UIKeyboardTypeASCIICapable键盘类型可以显示英文字符(包括大小写字母)和数字...

    swift-UITextFieldUITextView限制输入

    有时我们需要限制用户只能输入数字、字母或者特定格式的文本,可以使用`textField(_:shouldChangeCharactersIn:replacementString:)`和`textView(_:shouldChangeTextIn:replacementRange:)`这两个代理方法。...

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

    标题提到的“iOS——可限制最大字符的textfield”就是一个这样的解决方案。 这个解决方案可能包含以下几个关键功能: 1. **最大字符限制**:通过监听`UITextField`或`UITextView`的`textDidChange`事件,我们可以...

    ios-一行代码解决textField输入中文长度限制.zip

    textField输入中文字符时,直接在代理方法里限制会有问题,因为系统会将高亮部分一起算入字符数,从而造成明明没有到达限制上限,输不进去的情况。 该方法利用分类与runtime结合,用block作为回调,只需一行代码即可...

    swift-textField限制输入特殊符号

    // 这里进行输入限制的逻辑 } ``` 2. `textFieldDidBeginEditing(_:)`:当`textField`开始编辑时调用,我们可以在这里初始化一些状态或者设置初始规则。 ```swift func textFieldDidBeginEditing(_ textField: ...

    NumberTextField:一个只允许输入数字的TextField

    一个只允许输入数字的TextField子类 可以通过Numeric属性来设置数字的长度和小数位数 支持iOS6及以上系统 #用法示例# -(void)viewDidLoad{ [super viewDidLoad]; NumberField *numberField=[[NumberField alloc] ...

    只能输入数字的textbox 可以定义输入长度

    文件名`XsnTextBox.dll`可能是某个自定义控件库的一部分,提供了一个扩展的TextBox控件,可能已经内置了数字输入限制和长度限制的功能。如果使用这样的库,开发者可以直接在代码中引用该DLL,然后使用自定义的...

    SwiftUI实战之验证手机号并限制长度TextField

    本实战教程将聚焦于如何使用`TextField`来实现手机号的验证,并限制输入的字符长度,确保用户只能输入有效的手机号码。我们将探讨以下几个关键知识点: 1. **SwiftUI的TextField**: `TextField`是SwiftUI提供的一...

    一行代码解决textField输入中文长度限制

    总的来说,理解和正确处理字符串编码在iOS开发中至关重要,尤其是涉及到用户输入限制的时候。通过巧妙地使用NSString的方法,我们能够用简洁的代码实现复杂的需求,提高代码的可读性和效率。在实际项目中,这样的...

    自定义输入textfield

    例如,当用户开始输入时,可以添加一个淡入动画,或者限制只能输入数字或特定格式的数据。 3. **扩展功能**:这可能包括添加下拉菜单、日期选择器、自动完成等功能。例如,`XHDropTextfield`可能就是一个自定义的`...

    使用UITextField限制只可输入中,英文,数字的方法

    为了进一步完善输入限制的逻辑,我们需要定义一些辅助方法: ```objective-c - (BOOL)isInputRuleAndNumber:(NSString *)str { NSString *pattern = @"[a-zA-Z\u4E00-\u9FA5\\u0030-\\u0039]"; NSPredicate *pred ...

    控制键盘输入整数数字 和只允许输入数字

    在编程领域,尤其是在开发用户界面或者处理用户输入的场景中,有时我们需要限制用户只能输入特定类型的字符,例如数字。在给定的标题“控制键盘输入整数数字 和只允许输入数字”以及描述中,我们可以看到这是一个...

    ios-简单易用带输入字数限制的textField.zip

    在许多应用场景中,我们可能需要对用户的输入进行特定的限制,例如限制输入的字符数、只允许输入数字或字母等。`UITextField`是iOS SDK中用于接收单行文本输入的UI组件,而`XYTextField`则是一个经过定制的`...

    TextField和TextView限制输入字数长度

    在iOS开发中,UI界面经常会使用TextField和TextView来...在实际项目中,还可以根据需求进行适当的扩展,比如添加错误提示或自定义输入限制规则。希望这些内容能帮助开发者们更好地理解和实现输入字段的字数限制功能。

    swift-JXTextField限制键盘只限输入规范的身份证金额密码手机号用户名等

    对于金额输入,`JXTextField`可能限制用户只能输入数字和小数点,并且可以设定小数位数的最大值。对于密码输入,它可能支持数字、字母、特殊字符的组合,同时可以设置最小和最大长度。对于手机号码,`JXTextField`会...

    swift-一个属性搞定textfield的各种纯数字的最大个数价格字符串长度限制

    为了限制用户只能输入纯数字,我们可以自定义一个`UITextField`子类并重写`textField(_:shouldChangeCharactersIn:replacementString:)`代理方法。在这个方法中,我们可以通过正则表达式检查即将输入的字符是否为...

    textField限制输出长度

    `textField`的字符限制功能可以防止用户输入过长的文本,从而避免数据库溢出、性能下降或其他潜在问题。 在iOS开发中,我们可以使用Swift语言来实现这个功能,主要涉及`UITextField`类。`UITextField`有一个名为`...

    仅几行iOS代码限制TextField输入长度

    `- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string` 是一种简单而有效的方法来限制用户在iOS应用中的输入长度。它不仅能确保输入...

Global site tag (gtag.js) - Google Analytics