gpt4 book ai didi

java - Swing:向组件及其所有装饰添加监听器?

转载 作者:行者123 更新时间:2023-12-04 07:07:38 24 4
gpt4 key购买 nike

我可以向 Swing 组件添加一个监听器(比如 MouseAdapter )吗?
一切都是内部装饰组件 ?

这样当一个 JInternalFrame 被鼠标移动时
(通过拖动其窗口标题栏),它会给我以下事件:

  • 鼠标按下 Activity ,
  • 鼠标拖动 Activity ,
  • 鼠标发布 事件。

  • 目前,我收到 拖动时的上述事件
    J内部框架。

    我希望有一些标准化的解决方案,但我找不到任何解决方案。

    编辑:
    有人建议使用 组件监听器 ,但这对
    我。我需要知道, 用户 停止拖动 (鼠标释放事件),
    不是 当组件移动时。

    最佳答案

    是的,您可以为容器的所有组件添加监听器。 getComponents并添加监听器。您应该能够设法递归地执行此操作。您也可以使用 ContainerListener检查添加和删除组件。

    然而,MouseListenerMouseMotionListener行为很奇怪,因为该事件通常会冒泡到父级,但如果存在监听器则不会这样做(对于无望的设计来说如何?)。

    您的选择是:

  • 递归添加监听器(不好,见上文)
  • 将监听器添加到特定组件(脆弱)
  • 添加“玻璃 Pane ”(一个凌乱的黑客)
  • 添加 AWTEventListenerToolkit (需要权限)
  • 推送 EventQueue并检查事件(显然不适用于 Opera 和 Safari;停止系统复制和粘贴和小程序从工作中拖动)
  • 使用 ComponentListener ?
  • 关于java - Swing:向组件及其所有装饰添加监听器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/881688/

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