当前位置: 首页 > 面试题库 >

JTextField将输入限制为仅某些字符

颛孙正谊
2023-03-14
问题内容

我想创建JTextField,输入字符限于“
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVXYWZZ0123456789 +&@#/%?=〜_-
|!:,。;”之类的输入字符。所以我尝试覆盖

public class CustomJTextField extends JTextField {  
String goodchars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVXYWZZ0123456789+&@#/%?=~_-|!:,.;";

//... my class body ...//

@Override
public void processKeyEvent(KeyEvent ev) {
    if(c != '\b' && goodchars.indexOf(c) == -1 ) {
        ev.consume();
        return;
    }
    else 
        super.processKeyEvent(ev);}}

但这不是我想要的,因为用户无法再按ctrl-c ctrl-v ctrl-x …所以我添加了

&& ev.getKeyCode() != 17 && ev.getKeyCode() !=67 && ev.getKeyCode() != 86 && ev.getKeyCode() !=0 &&

到if条件,但现在用户可以粘贴不适当的输入,即’(’或’<’,没有任何问题…我该怎么办?


问题答案:

也许最好将DocumentFilter与Pattern一起使用,



 类似资料:
  • 下面是关于如何限制字符输入长度的代码 可以通过

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

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

  • 问题内容: 我刚刚开始学习我的第一种真正的编程语言Python。我想知道如何将用户输入限制为特定字符和特定长度。例如,如果用户输入的字符串包含除字母以外的任何内容,我想显示一条错误消息,并且我想显示其中一个用户输入的字符超过15个。 第一个似乎是我可以使用正则表达式做的事情,由于我已经在Java语言中使用过它们,所以我对此有所了解,但是我不确定如何在Python中使用它们。第二个,我不确定该如何处

  • 问题内容: 我在AngularJS中使用ngChange来触发自定义函数,该函数将删除用户添加到输入中的所有字母。 问题是我需要定位触发的输入,以便删除输入的字母。我已经在Google上寻找了很长时间,并且对此一无所获。 我能做什么? 问题答案: 简单的方法 ,如果适用于您的用例,请使用type =“ number” : 另一种简单的方法: ng- pattern 也可用于定义正则表达式,以限制字

  • 我已经编写了basic程序,但是,我需要使它这样,如果输入了一个以上的字符,一个错误消息将显示。 }