java - JTextField 的值更改监听器

标签 java swing listener jtextfield documentlistener

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

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/3953208/

相关文章:

java - 不能设置 textLabel 因为它与 parseDouble 相矛盾

java - 更多关于组合框

java - 使用 TableModelListener 从数据库检索数据到 JTable(JTable 中有 JCheckbox)时出错

java - 在 android OnPreferenceClickListener 中调用非静态方法

java - 属性在事件处理中变为 null

Java 通用类型不匹配错误

java - Kubernetes 无法通过 Github 从 Docker hub 部署简单镜像

java - 无法理解科赫曲线分形曲线

java - 如何使 expandablelistview 的 child 可点击并做其他事情?

java - JSOUP 选择具有特定 ID 的 <div>