【问题标题】:Show Event for JTextField in Java?在 Java 中显示 JTextField 的事件?
【发布时间】:2012-02-08 23:48:56
【问题描述】:

我正在实现一个专门的 JTextField 版本,并希望将它打包到一个自己的 bean 中。到目前为止,这个 bean 工作得很好。这是我的问题:

如何检测 JTextField 何时显示?这样我就可以在每次显示字段时初始化一些图形内容。

ShowComponent 事件对我不起作用。 FocusGained 和 FocusLost 工作得很好。

希望有人知道这个问题的解决方案。

【问题讨论】:

    标签: java swing user-interface listener jtextfield


    【解决方案1】:

    【讨论】:

    • 或 addComponentListener(...) 来跟踪可见性的变化
    • @alex - 大多无济于事:当可见属性的状态发生变化时会触发 componentEvent。由于该属性默认为 true,因此当我们直观地期望它时它不会被触发:-)
    【解决方案2】:

    虽然使用 ComponentListener 并在其 componentShown 中做一些直观的事情似乎是要走的路,但它并没有帮助:它会在组件的可见属性更改时触发。该属性默认为真(即使尚未添加到屏幕上显示的任何容器),因此在显示时不会触发任何内容..

    相反,使用 AncestorListener 并在其祖先添加中执行所需的操作。

    【讨论】:

    • +1 不包括 ---> 请提问,为什么在这个世界上你建议将 Ancestor 添加到 J(Formatted)TextField
    • @mKorbel 不明白你的意思:问题(据我理解,可能是错误的)是在显示字段时得到通知(又名:添加)
    • hmmm 谢谢,我要试试会发生什么,先将 J(Formatted)TextField 添加到 un_visible Container,然后显示这个 Container
    • 没有像 unvisible 这样的东西(截至:它的可见属性 == false)容器 - 这就是重点:-) 你需要的是 显示(这是一个复合属性,请参阅@Atif 的答案)
    • 非常离题,非常好的是 SwingX_.... 用 NetBeans 平台损坏了 ***,我必须测试这个插件的更新,谢谢大家 :-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-14
    • 1970-01-01
    • 2015-09-16
    • 1970-01-01
    • 2013-02-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多