我有一个注册了DocumentListener的JTextField实例。我想使用以下方法删除documentListener:

jTextField.getDocument().removeDocumentListener(arg0)


我遇到的问题是,我无法访问文档侦听器,因为Document类没有提供getListeners()方法。

如何将所有侦听器注册到javax.swing.text.Document对象中。

最佳答案

如果您知道里面有什么Document,则可以将结果转换为具有getListeners()方法的对象。

例如

Document doc = jTextField.getDocument();
if (doc instanceof AbstractDocument) {
    DocumentListener[] listeners = ((AbstractDocument) doc).getDocumentListeners();
    // find listener in array and remove
}

09-26 03:09