`
弦上的福音
  • 浏览: 21844 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

数字文本框JTextField(转)

阅读更多
<div class="iteye-blog-content-contain" style="font-size: 14px">
该类限制在文本框中输入非数字字符,即只允许输入数字[0-9],并且支持ctrl+c和ctrl+v
复制粘贴。
/**
 * JNumberTextField从JTextField派生,只允许输入数字字符。 <br>
 * 修改日志: <br>
 * (1) 2005-05-09 创建JNumberTextField类 <br>
 * (2) 2007-4-10 增加了输入数字位数控制 <br>
 */
public class JNumberTextField extends JTextField {
    
    private static Toolkit toolkit = Toolkit.getDefaultToolkit();

    /**
     * 默认最大位数为1024
     */
    protected int maxLength = 1024;
    
    // 构造函数
    public JNumberTextField() {
        super();
    }

    public JNumberTextField(int cols) {
        super(cols);
    }

    public void setMaxLength(int value) {
        maxLength = value;
    }
    
    protected Document createDefaultModel() {
        return new DigitDocument();
    }
    
    protected class DigitDocument extends PlainDocument {

        public void insertString(int offs, String str, AttributeSet a)
                throws BadLocationException {
            // 若字符串为空,直接返回。
            if (str == null || str.length() == 0) {
                return;
            }

            // 控制输入数字的个数
            String s = super.getText(0, super.getLength());
            if (s.length() >= maxLength)
                return ;
                        
            char[] source = str.toCharArray();
            char[] result = new char[source.length];
            int j = 0;
            for (int i = 0; i < source.length; i++) {
                if (Character.isDigit(source[i])) {
                    result[j++] = source[i];
                }
                else {
                    toolkit.beep();
                }
            }
            if (s.length() + j > maxLength)
                j = maxLength - s.length();
            
            super.insertString(offs, new String(result, 0, j), a);
        }
    }
}



原文链接:http://blog.csdn.net/irvine007/article/details/374235
</div>
分享到:
评论

相关推荐

    JTextField限制最大数字.txt

    ### JTextField限制最大数字知识点解析 #### 一、背景与需求分析 在开发基于Java Swing的应用程序时,我们经常需要处理用户输入数据的有效性检查。例如,在一个简单的数值输入框(`JTextField`)中,可能需要限制...

    ValidarNumeros:验证仅允许以Java语言输入数字的文本框

    在Java编程中,文本框(JTextField)是用于接收用户输入的组件,常见的应用场景包括登录密码、手机号码等。为了确保用户输入的数据符合特定格式,例如只允许输入数字,我们需要进行输入验证。本项目"ValidarNumeros...

    IP地址格式输入文本框

    在Java中,一个自定义的文本输入框通常会继承自`javax.swing.JTextField`,并添加额外的验证和处理逻辑。在这个类中,可能会定义一个监听器,当用户输入或粘贴IP地址时,检查输入的格式是否合法,如确保每个段的数字...

    JAVA文本框验证大全

    - **格式验证**:检查输入是否符合特定格式,如日期、邮箱、数字等。 - **自定义验证**:根据业务需求定制的验证规则。 3. **验证实现方式**: - **监听器**:使用`DocumentListener`监听文本框内容的变化,一旦...

    java数字类型转换

    当用户点击“Convert”按钮时,程序会尝试读取文本框中的值,将其转换为相应的数字类型,并在标签中显示转换后的结果。 ### 结论 在Java中,数字类型转换是处理数值数据的基础技能之一,尤其在GUI应用程序中,它...

    java JTextField组件的使用

    例如,限制只能输入数字: ```java Document doc = textField.getDocument(); doc.addDocumentListener(new DocumentListener() {...}); ``` 7. **样式定制** 可以通过`setFont()`改变字体,`setForeground()`...

    动态获取文本框输入的值

    本次讨论的主题是“动态获取文本框输入的值”,即在不借助于键盘事件的情况下实时监控文本框内的输入变化。这种方法广泛应用于需要实时更新数据的应用场景,如计算器、搜索框、聊天应用等。 ### 动态获取文本框输入...

    TestMath.zip_java的GUI实现两个文本框内容相加

    在这里,我们需要两个JTextField来获取用户输入的数字。创建两个JTextField对象,并设置其ID或名称以便后续引用。 4. **JButton**: JButton用于创建按钮。在这个例子中,创建一个JButton对象,表示“等于号”按钮,...

    java实验报告编程资料

    - **运行结果**:展示算数测试界面,允许用户输入数字,并执行计算操作。 - **信号灯** - 由于提供的信号灯部分代码不完整,无法详细分析。但通常涉及创建不同的组件(如按钮、标签等),并通过事件处理来改变...

    实现一个如图界面的计算器,要求点击若干按钮后,计算式能在首栏文本框中显示。

    这个计算器的设计目标是,当用户点击不同的数字和运算符按钮时,计算式能够在屏幕顶部的文本框中实时显示出来。以下是对实现这个功能所需知识点的详细说明: 1. **Java基础**:首先,你需要对Java编程语言有基本的...

    文本框输入不合理数据时进行验证.rar

    "文本框输入不合理数据时进行验证"这个主题涉及到的是前端和后端开发中的数据验证技术,确保用户输入的数据符合预设的规则,防止错误、非法或恶意的数据进入系统。以下是对这一主题的详细阐述: 1. **前端验证**: ...

    可以输入数字的小应用程序图形用户界面

    2. 创建组件:例如,创建一个`JFrame`作为窗口,然后添加`JLabel`显示提示信息,`JTextField`供用户输入数字,以及`JButton`来触发操作。 3. 实现事件处理:当用户点击按钮时,需要定义一个事件监听器来处理这个动作...

    解析Java图形化编程中的文本框和文本区

    例如,当用户在文本框中输入数字后按下回车,我们可以使用`ActionListener`捕获这一事件,然后将文本转换为整数并计算其平方值,结果展示在另一个文本区中。`Long.parseLong()`或`Integer.parseInt()`等方法可以将...

    二进制、十进制、十六进制相互转换的Java程序

    在这个程序中,可能使用了`JFrame`作为主窗口,`JLabel`显示提示信息,`JTextField`作为输入和输出的文本框,以及`JButton`作为退出按钮。 - **事件监听器**:为了响应用户的输入,需要为文本框添加`...

    Java2训练题,各种基本的

    - 文本框(`JTextField`)和文本区域(`JTextArea`)是Java Swing库中的组件,用于创建用户界面。文本框用于输入单行文本,文本区域则可以显示多行文本。 10. **事件处理**: - 要实现“文本框内容改变时”的功能...

    Java Swing技术实现的计算器源码

    Swing提供了多种组件,如按钮(JButton)、文本框(JTextField)和面板(JPanel)。以下是一些基本组件的创建示例: ```java import javax.swing.*; import java.awt.*; // 创建文本框 JTextField t = new ...

    Java猜数字游戏源代码

    JTextField 是一个标准的文本框组件,用于输入文本。在这个游戏中,使用了 JTextField 来输入猜测的数字。 知识点10:Box Box 是一个容器,用于存放其他组件。在这个游戏中,使用了 Box 来存放水平排列的组件。 ...

    猜数字小游戏

    Swing提供了丰富的组件,如`JFrame`(窗口)、`JLabel`(标签)、`JButton`(按钮)和`JTextField`(文本框)。在创建界面时,通常会定义一个`JFrame`作为主窗口,然后在其中添加各种组件。 ```java JFrame frame =...

    猜数字 JAVA课程设计报告

    - JTextField field:用户输入猜测数字的文本框。 - **ccai类**:同样继承自JFrame,专用于展示游戏规则,帮助用户理解游戏玩法。 4. **GUI实现** GUI界面通常由各种组件构成,如按钮、文本框、菜单等。在JAVA...

    java实现计算器的源代码

    - 定义了16个按钮 (`JButton`) 和一个文本框 (`JTextField`) 以及一个面板 (`JPanel`)。 - 按钮分别代表数字键 (0-9) 和四个基本运算符 (+, -, *, /) 以及等号 (=) 和小数点 (.)。 - 文本框 (`numText`) 用于显示...

Global site tag (gtag.js) - Google Analytics