当前位置: 首页 > 知识库问答 >
问题:

限制JTextField中输入的长度无效

费秦迟
2023-03-14

我试图限制用户可以在文本字段中输入的字符的最大长度,但似乎不起作用。

以下是代码:

text2 = new JTextField("Enter text here",8);

我做错什么了吗?我怎样才能使限制正常工作?

共有3个答案

皇甫俊雅
2023-03-14

只需扩展JTextField类并覆盖构造函数中的KeyReleased事件,并将其指向一个检查长度的新方法:

package gui;

import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;

import javax.swing.JTextField;

public class RecordClassTextField extends JTextField {

    public RecordClassTextField() {
        this.addKeyListener(new KeyAdapter() {
            @Override
            public void keyReleased(KeyEvent e) {
                cleanText();
            }
        });
    }

    private void cleanText()
    {
        if(this.getText().length() > 17){
            System.out.println("Over 17");
        }
    }
}
唐哲
2023-03-14

构造器

new JTextField("Enter text here",8);

将可见列数设置为8,但不限制您输入更多。

您可以使用DocumentFilter来限制输入长度。

濮阳旭东
2023-03-14

您当前的代码没有设置最大长度,而是定义了可见列的数量。

要限制数据的最大长度,可以为文本字段设置一个自定义文档,该文本字段不允许添加超出最大长度限制的内容:

public final class LengthRestrictedDocument extends PlainDocument {

  private final int limit;

  public LengthRestrictedDocument(int limit) {
    this.limit = limit;
  }

  @Override
  public void insertString(int offs, String str, AttributeSet a)
      throws BadLocationException {
    if (str == null)
      return;

    if ((getLength() + str.length()) <= limit) {
      super.insertString(offs, str, a);
    }
  }
}

然后将文本字段设置为使用此文档:

text2.setDocument(new LengthRestrictedDocument(8));
 类似资料:
  • 我正在尝试使用pycrypto加密我的数据。我已经为此编写了以下代码。 但我的错误率越来越低 如何控制输入字符串?输入字符串可以是任意长度。

  • 本文向大家介绍jQuery 限制输入字符串长度,包括了jQuery 限制输入字符串长度的使用技巧和注意事项,需要的朋友参考一下 我们后台做程序的时候,比如录入一篇文章,文章会有摘要,我们希望文章的字符长度是我们可以控制的,我们不希望它太长,比如限制只能输入250个字符,下面的代码实现了这种功能。 先来看一下效果图 代码如下: 以上就是本文的全部内容,希望能给大家一个参考,也希望大家多多支持呐喊教程

  • 在java中,我试图制作简单的货币转换器,但为此,我需要一个文本字段,它可以将输入限制为仅数字,更重要的是双数字。我尝试过使用,但它只在您完成输入并单击其他位置后格式化输入,但我需要限制TextField在输入时使用()每个无效字符。 可能的尝试: 使用: 使用: 使用与regex: 第二次和第三次尝试很接近,但是第二次尝试在点值上失败了,第三次尝试总是读文本字段上的第一个字符,不管它是什么,所以

  • 本文向大家介绍TextField和TextView限制输入字数长度,包括了TextField和TextView限制输入字数长度的使用技巧和注意事项,需要的朋友参考一下 TextField和TextView限制输入长度的具体实现方法,供大家参考,具体内容如下 TextField的限制代理方法  只需要在这个代理方法里面code这样的代码就可以了 16 是长度可以自己设置 TextView的限制代理方

  • 问题内容: 我知道这个问题一定已经被提出并回答了一百万遍了,但是我找不到一个简单的解决方案。我有一个JTextField,它只接受正整数作为输入。我需要一种方法来确保此处没有其他输入。 我已经有一个附加到此控件。删除此侦听器在那里要处理的其他代码,我得到了: 如你所见,我正在尝试使用来检查刚刚按下的键是否在整数范围内。这似乎有效。但是我想做的就是,如果该条目不在此范围内,则只需忽略该条目。该代码本

  • 本文向大家介绍仅几行iOS代码限制TextField输入长度,包括了仅几行iOS代码限制TextField输入长度的使用技巧和注意事项,需要的朋友参考一下 网上有很多限制textField输入长度方法,但是我觉得都不是很完美,准确来说可以说是不符合实际开发的要求,因此在这里整理一下textField限制输入长度的方法.  我所采用的并不是监听方法而是最不同的代理实现方法,为什么不使用监听呢???