【问题标题】:Changing TextField value without triggering TextListener在不触发 TextListener 的情况下更改 TextField 值
【发布时间】:2012-02-20 16:04:22
【问题描述】:

我有一个TextListener,我想以编程方式更改而不触发它的TextListener。我只希望文本侦听器在用户文本更改时激活。 我应该怎么做?

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

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

【问题讨论】:

    标签: java listener awt textfield


    【解决方案1】:

    您可以删除并重新添加监听器,或者给它一个布尔值来切换它应该监听的时间。

    编辑:根据 Tom Hawtin:第二个建议,即使用标志的建议,比添加/删除侦听器更受欢迎,这对我来说也很有意义。

    【讨论】:

    • 使用标志比玩添加和删除监听器要好得多。 (也可以使用代理文档来检测更改来自哪些来源。)
    • @TomHawtin-tackline:感谢您的宝贵意见。我已编辑我的答案以反映您的建议。您能否解释更多或提供有关使用代理文档的链接(或随时编辑我的答案)?谢谢!
    • 事实上,与 AWT 相关的回答者在上个世纪大量死亡 :-)
    • @HovercraftFullOfEels 有没有切换监听器激活的方法?
    • @mKorbel,你的意思是我应该在 Swing 中找到一个等价物?
    猜你喜欢
    • 2014-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-06
    • 1970-01-01
    • 1970-01-01
    • 2022-09-30
    • 2016-10-13
    相关资源
    最近更新 更多