从javax.swing.text.Document实例获取所有侦听器

问题描述 投票:1回答:1

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

jTextField.getDocument().removeDocumentListener(arg0)

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

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

java swing awt jcomponent
1个回答
2
投票

如果你知道Document里面有什么,你可以将结果转换为具有getListeners()方法的东西。

EG

Document doc = jTextField.getDocument();
if (doc instanceof AbstractDocument) {
    DocumentListener[] listeners = ((AbstractDocument) doc).getDocumentListeners();
    // find listener in array and remove
}
© www.soinside.com 2019 - 2024. All rights reserved.