Java中类似于C#中的TextBox TextChanged事件的等效方法是什么?

5
在C#中,文本框有一个事件如下:
private void fooText_TextChanged(object sender, EventArgs e)
{
    //do something 
}

当文本框中的文本被更改时,fooText_TextChanged 中的代码将被触发。

在Java中,相应的等效方法是什么?或者如何在Java中实现类似的功能?

感谢任何反馈、帮助和建议。

2个回答

11

对于 Swing,如果你想在文本组件的文本发生变化之后得到通知,你可以使用添加到 JTextComponent 的 Document 中的 DocumentListener。例如:

  JTextField myField = new JTextField();

  myField.getDocument().addDocumentListener(new DocumentListener() {

     public void removeUpdate(DocumentEvent e) {
        // TODO add code!

     }

     public void insertUpdate(DocumentEvent e) {
        // TODO add code!

     }

     public void changedUpdate(DocumentEvent e) {
        // TODO add code!

     }
  });

如果您希望在文本被提交到文本组件之前检查文本,那么您需要向JTextComponent的文档添加一个DocumentFilter。


谢谢您的迅速回复,我会查看这个 :) - Ari

4

1
实际上,您将DocumentListener添加到文档而不是组件。 - camickr

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接