2012-02-20 72 views
1

我有TextListener我想以编程方式更改,而不触发TextListener。我只想让文本侦听器在用户文本更改时激活。 我应该如何继续?在不触发TextListener的情况下更改TextField值

TextField human = new TextField(); 
human.addTextListener(myListener); 

// I don't want this line to trigger listener 
human.setText(myString); 

回答

3

您可以删除并重新添加侦听器或给它一个布尔值以在应该侦听时切换。

编辑:根据汤姆霍金:第二个建议,使用一个标志,比添加/删除一个监听器更受欢迎,这对我也是有意义的。

+1

使用标志会比添加和删除侦听器好得多。 (也可以使用代理文档来检测哪些来源发生了变化。) – 2012-02-20 16:32:18

+0

@ TomHawtin-tackline:感谢您的宝贵意见。我编辑了我的答案以反映您的建议。你能解释一下还是提供一个关于代理文档使用的链接(或者随意编辑我的答案)?谢谢! – 2012-02-20 17:31:52

+0

,事实上AWT rellated answerers批发死于上个世纪:-) – mKorbel 2012-02-20 17:45:31

相关问题