Java 中带有文档侦听器的自动完成文本框

Autocomplete Text box with Document Listener in Java

我正在尝试为我正在编写的程序制作一个自动完成文本框。我有逻辑,但我在正确实施它时遇到了一些麻烦。首先,我尝试使用按键侦听器,但该解决方案在同时处理多个按键的方式上有点奇怪。然后我尝试了 DocumentListener,它要好得多,但由于线程问题,不允许我从 Listener 中编辑文档。我阅读了一些有关 DocumentFilter 的内容,但找不到有关如何使用它的单一指南。有没有办法用 documentListener 编辑文档?或者您会推荐 DocumentFilter,如果是,您如何使用它?

DocumentListener 不应用于编辑文档。这样做需要调用 SwingUtilities.invokeLater(...) 并且由于 DocumentListener 检测到文档的更改,任何编辑都将导致无限循环。最好的办法是使用 DocumentFilter。