在JTextField上添加changeListener时出错

时间:2012-06-29 07:07:26

标签: java swing compiler-errors jtextfield documentlistener

在这里我的情况:

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

错误表示对于JTextField类型,未定义addChangeListener。 还有什么东西可以导入吗? (我是java的新手) 感谢

3 个答案:

答案 0 :(得分:2)

你可能想试试这个:

// 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) {
  }
});

答案 1 :(得分:1)

  

还有什么东西可以导入吗?

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

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

答案 2 :(得分:0)

那是因为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 
           }
        }    
    }
}