第四十二篇:JAVA限制文本框输入

本文介绍了在Java GUI开发中如何限制文本框的输入,如设置最大长度和转换为大写。通过使用`PlainDocument`并重写`insertString`方法,可以实现对用户输入的控制。文中给出了具体示例,包括将输入字符转为大写以及通过正则表达式校验输入内容。
摘要由CSDN通过智能技术生成

我们在做Java GUI开发的时候,有的时候需要对文本框中的内容进行限制,比如最大长度、转换为大写等。今天就为大家介绍一下该如何实现。

通过查阅JDK API,我们可以知道,在JTextField中提供了setDocument(Document doc)方法,用于将编辑器与一个文本文档关联。那么我们就需要使用它啦。

Document是一个接口,有如下几个实现类:

  • AbstractDocument
  • DefaultStyledDocument
  • HTMLDocument
  • PlainDocument

这里我们需要使用的就是PlainDocumentPlainDocument维护无任何字符属性的普通文档。此文档的默认元素结构是文本中的行的映射。由 getDefaultRootElement 返回的 Element 是行的映射,且每个子元素表示一行。此模型不维护任何字符级属性,但每行都可以用一个任意的属性集来标记。使用默认的根元素可以快速执行从行到偏移量和从偏移量到行的转换。由编辑激发的 DocumentEvent 的结构信息将指示行结构的更改。 默认的内容存储管理是通过间隙缓冲区实现 (GapContent) 执行的。如果编辑是连续的或集群化的(正如常见的那样),此操作支持对大型文档的高效合理编辑。

PlainDocument中提供了insertString(int offs, String str, AttributeSet a),用于向文档中插入某些内容,所以我们只需要重写该方法就可以了。

首先我们先来写一个将输入字符转换为大写的示例:

import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.PlainDocument;

public class UpperDocument extends PlainDocument
{
   

   private static final long serialVersionUID = 1L;

   @Override
   public void insertString(int offs, String str, AttributeSet a)
         throws BadLocationException
   {
      if (str == null)
      {
         return;
      }
      char[] upper = str.toCharArray();
      for (int i = 0; i < upper.length; i++)
      {
         upper[i] = Character.toUpperCase(upper[i])
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值