<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限制最大数字知识点解析 #### 一、背景与需求分析 在开发基于Java Swing的应用程序时,我们经常需要处理用户输入数据的有效性检查。例如,在一个简单的数值输入框(`JTextField`)中,可能需要限制...
在Java编程中,文本框(JTextField)是用于接收用户输入的组件,常见的应用场景包括登录密码、手机号码等。为了确保用户输入的数据符合特定格式,例如只允许输入数字,我们需要进行输入验证。本项目"ValidarNumeros...
在Java中,一个自定义的文本输入框通常会继承自`javax.swing.JTextField`,并添加额外的验证和处理逻辑。在这个类中,可能会定义一个监听器,当用户输入或粘贴IP地址时,检查输入的格式是否合法,如确保每个段的数字...
- **格式验证**:检查输入是否符合特定格式,如日期、邮箱、数字等。 - **自定义验证**:根据业务需求定制的验证规则。 3. **验证实现方式**: - **监听器**:使用`DocumentListener`监听文本框内容的变化,一旦...
当用户点击“Convert”按钮时,程序会尝试读取文本框中的值,将其转换为相应的数字类型,并在标签中显示转换后的结果。 ### 结论 在Java中,数字类型转换是处理数值数据的基础技能之一,尤其在GUI应用程序中,它...
例如,限制只能输入数字: ```java Document doc = textField.getDocument(); doc.addDocumentListener(new DocumentListener() {...}); ``` 7. **样式定制** 可以通过`setFont()`改变字体,`setForeground()`...
本次讨论的主题是“动态获取文本框输入的值”,即在不借助于键盘事件的情况下实时监控文本框内的输入变化。这种方法广泛应用于需要实时更新数据的应用场景,如计算器、搜索框、聊天应用等。 ### 动态获取文本框输入...
在这里,我们需要两个JTextField来获取用户输入的数字。创建两个JTextField对象,并设置其ID或名称以便后续引用。 4. **JButton**: JButton用于创建按钮。在这个例子中,创建一个JButton对象,表示“等于号”按钮,...
- **运行结果**:展示算数测试界面,允许用户输入数字,并执行计算操作。 - **信号灯** - 由于提供的信号灯部分代码不完整,无法详细分析。但通常涉及创建不同的组件(如按钮、标签等),并通过事件处理来改变...
这个计算器的设计目标是,当用户点击不同的数字和运算符按钮时,计算式能够在屏幕顶部的文本框中实时显示出来。以下是对实现这个功能所需知识点的详细说明: 1. **Java基础**:首先,你需要对Java编程语言有基本的...
"文本框输入不合理数据时进行验证"这个主题涉及到的是前端和后端开发中的数据验证技术,确保用户输入的数据符合预设的规则,防止错误、非法或恶意的数据进入系统。以下是对这一主题的详细阐述: 1. **前端验证**: ...
2. 创建组件:例如,创建一个`JFrame`作为窗口,然后添加`JLabel`显示提示信息,`JTextField`供用户输入数字,以及`JButton`来触发操作。 3. 实现事件处理:当用户点击按钮时,需要定义一个事件监听器来处理这个动作...
例如,当用户在文本框中输入数字后按下回车,我们可以使用`ActionListener`捕获这一事件,然后将文本转换为整数并计算其平方值,结果展示在另一个文本区中。`Long.parseLong()`或`Integer.parseInt()`等方法可以将...
在这个程序中,可能使用了`JFrame`作为主窗口,`JLabel`显示提示信息,`JTextField`作为输入和输出的文本框,以及`JButton`作为退出按钮。 - **事件监听器**:为了响应用户的输入,需要为文本框添加`...
- 文本框(`JTextField`)和文本区域(`JTextArea`)是Java Swing库中的组件,用于创建用户界面。文本框用于输入单行文本,文本区域则可以显示多行文本。 10. **事件处理**: - 要实现“文本框内容改变时”的功能...
Swing提供了多种组件,如按钮(JButton)、文本框(JTextField)和面板(JPanel)。以下是一些基本组件的创建示例: ```java import javax.swing.*; import java.awt.*; // 创建文本框 JTextField t = new ...
JTextField 是一个标准的文本框组件,用于输入文本。在这个游戏中,使用了 JTextField 来输入猜测的数字。 知识点10:Box Box 是一个容器,用于存放其他组件。在这个游戏中,使用了 Box 来存放水平排列的组件。 ...
Swing提供了丰富的组件,如`JFrame`(窗口)、`JLabel`(标签)、`JButton`(按钮)和`JTextField`(文本框)。在创建界面时,通常会定义一个`JFrame`作为主窗口,然后在其中添加各种组件。 ```java JFrame frame =...
- JTextField field:用户输入猜测数字的文本框。 - **ccai类**:同样继承自JFrame,专用于展示游戏规则,帮助用户理解游戏玩法。 4. **GUI实现** GUI界面通常由各种组件构成,如按钮、文本框、菜单等。在JAVA...
- 定义了16个按钮 (`JButton`) 和一个文本框 (`JTextField`) 以及一个面板 (`JPanel`)。 - 按钮分别代表数字键 (0-9) 和四个基本运算符 (+, -, *, /) 以及等号 (=) 和小数点 (.)。 - 文本框 (`numText`) 用于显示...