java - JTextField 的值更改监听器

标签 java swing listener jtextfield documentlistener

我希望在用户更改文本字段中的值后立即显示消息框。目前,我需要按 Enter 键才能弹出消息框。我的代码有什么问题吗?

textField.addActionListener(new java.awt.event.ActionListener() {
    public void actionPerformed(java.awt.event.ActionEvent e) {

        if (Integer.parseInt(textField.getText())<=0){
            JOptionPane.showMessageDialog(null,
                    "Error: Please enter number bigger than 0", "Error Message",
                    JOptionPane.ERROR_MESSAGE);
        }       
    }
}

如有任何帮助,我们将不胜感激!

最佳答案

向基础文档添加一个监听器,该监听器是自动为您创建的。

// Listen for changes in the text
textField.getDocument().addDocumentListener(new DocumentListener() {
  public void changedUpdate(DocumentEvent e) {
    warn();
  }
  public void removeUpdate(DocumentEvent e) {
    warn();
  }
  public void insertUpdate(DocumentEvent e) {
    warn();
  }

  public void warn() {
     if (Integer.parseInt(textField.getText())<=0){
       JOptionPane.showMessageDialog(null,
          "Error: Please enter number bigger than 0", "Error Message",
          JOptionPane.ERROR_MESSAGE);
     }
  }
});

关于java - JTextField 的值更改监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58507491/

相关文章:

java - JAXB 和同步

java - "Type mismatch: cannot convert from null to double"是什么意思?

java - 如何在 JPanel 上按名称或 id 查找元素?

java - 无法设置 JTextField 中的字符数限制

java - 我可以捕获退出 JTextField 的事件吗

java - 在 FILE 类中获取空指针异常

java - 在 Scala 中使用 java 迭代器

Java:如何注册监听 JFrame 运动的监听器

java - 我可以控制 Java 监听器的刷新率吗?

spring - Tomcat严重listenerStart错误