下面是示例代码: |
publicclass PlainDocumentFilter extends PlainDocument{ public final staticchar[] ALPHA_CHARS = { 'A', 'B', 'C', 'D', 'E','F', 'G', 'H', 'I', 'J','K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R','S', 'T', 'U', 'V', 'W','X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e','f', 'g', 'h', 'i', 'j','k', 'l', 'm', 'n', 'o', 'p', 'q', 'r','s', 't', 'u', 'v', 'w','x', 'y', 'z' }; public final staticchar[] NUMERIC_CHARS = { '0', '1', '2', '3', '4','5', '6', '7', '8','9' }; public final staticchar[] ALPHA_NUMERIC_CHARS = ArrayUtils.addAll(ALPHA_CHARS,NUMERIC_CHARS); private char[] acceptedChars; public PlainDocumentFilter() { this(ALPHA_NUMERIC_CHARS); } public PlainDocumentFilter(char[] acceptedChars) { this.acceptedChars = acceptedChars; } @Override public void insertString(int offs, String str, AttributeSet a) throws BadLocationException { //遍历String中所有字节,判断是否有包含不允许的字符出现 for (int i = 0, len = str.length(); i < len; i++) { if(!ArrayUtils.contains(acceptedChars, str.charAt(i))){ return; } } super.insertString(offs, str, a); } public static void main(String[] args) { JTextField textField = new JTextField(); textField.setDocument(new PlainDocumentFilter()); JFrame frame = new JFrame(); frame.add(textField); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.pack(); frame.setVisible(true); } } |
- 浏览: 34466 次
最新评论
-
jianghongh:
在存在输入法的情况下,offs值存在问题,这个要怎么解决?
Swing —— 扩展PlainDocument限制JTextField只能输入字母与数字
相关推荐
通过以上分析,我们可以看到如何通过自定义`Document`类来实现对`JTextField`的输入限制,以及如何通过扩展`JTextField`来添加额外的功能,如鼠标滚轮控制。这种方法不仅可以应用于限制数字输入的情况,还可以根据...
以下是一个简单的`DocumentFilter`示例,它限制了`JTextField`只能输入数字: ```java public class NumberDocumentFilter extends DocumentFilter { @Override public void insertString(FilterBypass fb, int ...
这种机制不仅可以防止用户输入过长的文本,还可以用于实现各种输入验证,例如只允许数字输入、字母输入或者特定格式的文本等。 在实际项目中,我们可能还需要考虑其他因素,如输入的实时反馈(如高亮显示错误)、...
//建立监听 FrameListener fl = new FrameListener(jb,tf,pw); //tf.addActionListener(fl); tf.addKeyListener(fl); //窗口可见 this.setVisible(true); //关闭窗口时退出程序 this....
JTextField 用于输入单行文本,可以限制输入字符的数量或类型。JTable 可以显示二维数据,支持排序、选择和编辑功能。JScrollPane 则用于在组件过大无法完全显示时提供滚动条。 Swing 还引入了布局管理器,如 ...
Java Swing是Java GUI(图形用户界面)开发的一个重要库,它是Java AWT(Abstract Window Toolkit)的扩展,提供了更丰富的组件和更好的可定制性。在这个"学生练习——Java Swing开发的小计算器"项目中,学生利用...
3. JTextField是Swing库中的文本字段组件,允许用户输入一行文本。它通常用于文本输入、编辑或显示信息。JTextField可以设置各种属性,例如字体、颜色和大小。 4. OCR(光学字符识别)技术用于将扫描或照片中的打印...
在Java Swing中,文本框(JTextField)和文本区(JTextArea)是两个常见的组件,用于接收用户的文本输入。它们是构建用户界面的重要元素,通常用于数据输入或者多行文本展示。 一、JTextField(文本框)的使用 1. 构造...
"支持只能输入"指的是控件可能有额外的验证机制,确保用户只能输入有效的IP地址字符,即数字0-9和点号'.',并限制点号的数量和位置,以符合IP地址的标准格式。 标签"IPAddress Document insertString remove"进一步...
3. **最大值限制(仅限数字)**:对于数字输入,`MQDocument`还提供了`setMaxValue`方法,限制用户输入的最大数值。`isMaxValue`布尔变量用于标识是否启用了最大值限制。 4. **错误提示**:当用户输入的数据违反了...
3. **扩展性**:这个日期控件的设计考虑到了扩展性,意味着它不仅限于JLabel和JTextField,可以通过修改或增加代码,使其支持JComboBox、JButton等其他Swing组件,这样可以适应更多类型的用户界面需求。 4. **源码...
Java中的`JTextField`是Swing库中一个基础的组件,用于创建文本输入字段。它允许用户输入单行文本,并且通常与`Document`对象关联,`Document`管理`JTextField`中的数据。在标准的`JTextField`中,虽然没有内置的...
Swing组件是Java GUI(图形用户界面)编程中的核心元素,它是Java Foundation Classes (JFC) 的一部分。Swing提供了一系列丰富的组件,用于构建...记得动手实践,理论与实践相结合,才能更好地掌握Swing组件的应用。
在Java Swing应用开发中,有时候我们需要提供一种更加用户友好的输入方式,比如在输入框(JTextField)中输入内容时,能实时根据已输入的字符给出匹配建议,以辅助用户快速选择目标信息。这种功能常见于订机票时输入...
在Java中,一个自定义的文本输入框通常会继承自`javax.swing.JTextField`,并添加额外的验证和处理逻辑。在这个类中,可能会定义一个监听器,当用户输入或粘贴IP地址时,检查输入的格式是否合法,如确保每个段的数字...
`JTextField`是一个单行文本输入框,用户可以在其中输入任意字符。`JPasswordField`则用于隐藏输入的字符,通常用于输入密码,显示为星号或圆点。 实现自定义的占位符功能,我们可以按照以下步骤进行: 1. **创建...
【标题】: "可以输入数字的小应用程序图形用户界面" 是一个基于Java的编程实践,它设计了一个GUI(图形用户界面)来允许用户输入数字。在计算机科学中,GUI是用户与软件交互的主要方式,提供了直观的按钮、文本框、...
例如,限制只能输入数字: ```java Document doc = textField.getDocument(); doc.addDocumentListener(new DocumentListener() {...}); ``` 7. **样式定制** 可以通过`setFont()`改变字体,`setForeground()`...
王鹏等——第5章"中,读者将学习到如何创建一个完整的Swing应用程序,从设置主窗口到添加组件,再到处理用户输入和响应事件。书中可能包含了以下实例: 1. 创建简单的Hello, World!程序,展示如何建立一个包含...
1. **Swing组件**: Swing提供了许多组件,如按钮(JButton)、文本框(JTextField)、标签(JLabel)、复选框(JCheckBox)、单选按钮(JRadioButton)、菜单(JMenu)、对话框(JOptionPane)等。这些组件都是...