【问题标题】:how to make jtextfield only accept characters in netbeans如何使 jtextfield 只接受 netbeans 中的字符
【发布时间】:2016-03-26 11:03:24
【问题描述】:

我在netbeans中做了一个示例项目的注册。在 jtextfield1 中是用户 ID 而 Jtextfiled7 是国家/地区,两者都必须是非数字字符或不允许的空格和特殊字符。这怎么可能?

【问题讨论】:

  • This question 的答案将向您展示正确的方法,尽管您需要对其进行修改(因为它的作用基本上与您想要的相反)。
  • 你也可以看看Validating Input
  • 几周前我正在制作一个需要验证JTextFields 输入的小型摇摆应用程序。我在第一条评论中找到了链接的问题并实现了代码并且它有效,但我想做的比它提供的更多,所以另一个搜索将我带到了 MadProgrammer 的验证输入链接,它提供了我想要的一切。我建议实施前者以获得快速解决方案,而实施阶梯以获得深入解决方案。
  • 这是一个example,带有我今天提供的文档过滤器。

标签: java swing validation jtextfield


【解决方案1】:

@Vivek,

我知道你问的这个问题的答案。请按照以下说明进行操作。

在 Netbeans 中右键单击 JTextfield 并选择 events>>key>>key type 并在代码之间输入以下代码。以下是仅接受字符的代码

enter code here
char c=evt.getKeyChar();

    if(!(Character.isAlphabetic(c) ||  (c==KeyEvent.VK_BACKSPACE)||  c==KeyEvent.VK_DELETE ))
        evt.consume();

【讨论】:

    【解决方案2】:

    要进行实时验证,请使用DocumentFilter,有关详细信息,请参阅Implementing a Document FilterDocumentFilter Examples

    看看:

    更多示例。

    有关后期验证,请参阅Validating Input 了解更多详情

    【讨论】:

      【解决方案3】:

      您可以使用 JFormattedTextField,也可以在 JTextField 的 KeyTyped 事件中编写代码

      jTextField.addKeyListener(new java.awt.event.KeyAdapter() {
              public void keyTyped(java.awt.event.KeyEvent evt) {
      
               if(!(Character.isLetter(evt.getKeyChar()))){
                      evt.consume();
                  }
              }
          });
      

      【讨论】:

      • 不,不,不。将 KeyListener 与文本组件一起使用是不合适的,而是使用 DocumentFilter,它就是为它设计的
      猜你喜欢
      • 2013-12-22
      • 2013-01-16
      • 2017-09-14
      • 1970-01-01
      • 1970-01-01
      • 2012-01-09
      • 2012-12-28
      • 2016-04-29
      相关资源
      最近更新 更多