gpt4 book ai didi

java - 防止 DocumentEvent 循环的最佳方法?

转载 作者:行者123 更新时间:2023-11-30 05:10:31 24 4
gpt4 key购买 nike

我有一个带有建议弹出窗口的 JTextField。 DocumentListener 监听所有 InsertUpdate-Events 并检查建议列表并打开 Popup。如果单击弹出窗口中的建议条目,所选的 Word 将设置为 JTextField 并且弹出窗口关闭。但这将触发一个新的 InsertUpdate-Event 并且弹出窗口再次打开。

我不想经常使用 boolean 标志或删除和添加监听器。还有其他方法可以防止 DocumentEvent 循环吗?或者有没有办法默默地设置文本?我尝试过:

 this.getTextComponent().getDocument().insertString()
this.getTextComponent().setText()

最佳答案

无法在不触发事件的情况下插入文本,也没有第二个 API 可以针对用户的更改和代码的更改触发不同的事件 ( as in Qt, for example )。您必须使用 boolean 保护或以其他方式禁用监听器。

顺便说一句,SWT也遭受着同样糟糕的设计。

关于java - 防止 DocumentEvent 循环的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3531265/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com