【问题标题】:error on adding changeListener on JTextField在 JTextField 上添加 changeListener 时出错
【发布时间】:2012-06-30 17:34:48
【问题描述】:

这是我的情况:

textField1.addChangeListener(new ChangeListener() {
        @Override
        public void stateChanged(ChangeEvent e) {
            textField1StateChanged(e);
        }
    });

错误说 addChangeListener 对于 JTextField 类型未定义。 还有什么要进口的吗? (我是java新手) 谢谢

【问题讨论】:

    标签: java swing compiler-errors jtextfield documentlistener


    【解决方案1】:

    你可能想试试这个:

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

    【讨论】:

    【解决方案2】:

    那是因为 JTextField 中没有这样的方法。相反,您需要做的是让您的类实现 ChangeListener,并实现stateChanged() 方法。在这里,您将从传入的 ChangeEvent 中获取触发事件的组件,并采取相应措施。这是来自docs 的示例:

    class YourClass implements ChangeListener {
        public void stateChanged(ChangeEvent e) {
            if (e.getSource() instanceof JTextField) {
               JTextField source = (JTextField)e.getSource();
               if(!source.getValueIsAdjusting()) {
                 // check if this is the component you want and respond to the event 
               }
            }    
        }
    }
    

    【讨论】:

      【解决方案3】:

      还有什么要导入的吗?

      这与导入无关,JTextField 有可用的方法。那不是其中之一。

      请参阅Listeners Supported by Swing Components: Other Listeners that Swing Components Support,了解表格中的详细信息。

      【讨论】:

      • 如果您使用的是 netbeans,它会为您建议所有需要的导入。我总是这样使用它,所以我几乎不知道要导入什么了:D
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-13
      • 2013-06-05
      • 1970-01-01
      相关资源
      最近更新 更多