当光标位于子组件上时,JPanel 不生成 MouseEvents

2024-03-03

这对我来说有点奇怪,但是当光标位于 JTextField 和 JToolBar 子组件上时,JPanel 不会生成 MouseEvents,但当光标位于 JLabel 上时,它会生成 MouseEvents。有人可以解释我为什么吗?有没有办法强制 JPanel 生成事件,即使鼠标位于子组件上?


事件调度程序会将鼠标事件转发给注册到包级返回的组件的侦听器getMouseEventTarget中的方法Container。这将在您的JFrame,并且正如 JavaDoc 所示,它:

获取对接收鼠标事件感兴趣的最顶层(最深)的轻量级组件。

然后,事件调度程序采用这个最顶层的组件(您的JTextField,例如)并仅向其所有侦听器发送事件。他们这样做是为了避免将这些事件广播到可能分层在 Swing 容器中的所有组件。正如您可以想象的那样,MouseEvents 非常健谈,所有这些mouseEntered, mouseDragged, and mouseMoved为所有的事件调度MouseListener and MouseMotionListener潜在的实现。查找所有侦听器然后向层次结构中的所有侦听器触发事件​​的处理过程将非常耗时。

假设还对于像这样的类JTextField and JButton等等,默认的鼠标处理就足够了。如果您想以不同的方式处理鼠标操作(即更改颜色)mouseEntered/mouseExited),您可以添加一个MouseListener根据需要使用这些小部件。

对于您的处理,我建议简单地添加您的JPanel as a MouseListener如果您需要处理这些事件,请访问您的顶级组件。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当光标位于子组件上时,JPanel 不生成 MouseEvents 的相关文章

  • SpringMVC 和 Hibernate:CannotCreateTransactionException:无法打开 Hibernate 会话进行事务;

    我正在尝试设置并Spring MVC 休眠项目 但它让我发疯 我还会考虑订购 xml 配置文件的建议 我有以下文件 web xml
  • 如何为带有未确定的“?”的Java通用Map添加值值类型?

    我在 JDK 8 示例中看到过这种声明 Map
  • 涉及数学的方法给出与计算器不同的答案

    我是java新手 所以请耐心等待 我试图从比赛总数中获得胜利的百分比 但我正在做的事情还很遥远 我获取百分比的方法如下 public double winPercentage int wins int total return wins t
  • Android - 检测电容式触摸屏上的触摸压力?

    我听说过 MotionEvent e float press e getPressure 但这只会在没有触摸时返回 0 当我的手指触摸屏幕时返回 1 是否可以找到手指在触摸电容屏上施加的压力值 或者我的预感是否正确 即这只适用于电阻屏幕 M
  • log4j2 SMTP Appender:如何包含另一个级别的先前消息?

    我正在使用 log4j2 beta9 并且有以下配置 其中一部分
  • 如何通过双击图标来执行JAVA程序?

    我写了一个java程序 现在我想在没有 IDE Eclipse 等的情况下打开我的控制台 java 应用程序 只需双击桌面上的可执行版本即可 我已将 java 项目导出为 Runnable JAR 文件 但无法打开 当我尝试使用cmd打开应
  • 在 Spring 中使用事务时创建提交后

    由于某些原因 我使用 Spring PlatformTransactionManager 手动执行事务提交和回滚 我需要做的是设置一个钩子 以便在提交事务后发生提交后操作 通过查看 void commit TransactionStatus
  • 可以使用注解进行代码注入吗?

    我意识到这可能是一个已经被提出和回答的问题 但请耐心等待 我想知道是否可以使用注释将代码注入到类编译时 典型的示例是为对象的成员生成 getter 和 setter 这并不完全是我所需要的 但它可以说明基本思想 现在在互联网上我得到的基本答
  • 正则表达式查找两个字符之间的内部匹配

    环境 Java 我想匹配两个字符串之间的字符 这是一个例子 foo
  • 如何设置Java线程的CPU核心亲和力?

    我搜索了以前关于类似主题的帖子 但找不到合适的答案 因此提出这个问题 非常感谢您帮助回答 我知道在 Linux 中通过任务集命令设置进程与特定 CPU 核心的关联性 但我想设置 Java 线程与特定 cpu 核心的亲和力 以便属于同一进程的
  • 如何将多个值存储到一个键(java)

    我搜索一个可以存储多个键值对的数据结构 数据基本上是这样的 1 value 1 2 value 2 于是我想到了使用HashMap 遗憾的是 这对我不起作用 因为一个键可能会出现多个值 在上面的例子中 1 value 2 可能是另一个条目
  • Java SSO 与 Wildfly 8、Java 1.8.0_45 和 Active Directory

    我对这个主题进行了很多搜索 但找不到解决方案 要求的简短描述 Wildfly 8 2 下 Web 应用程序上的 SSO 在 Active Directory 中验证 Windows 用户的身份 当 SSO 失败时回退到登录表单 在 Wild
  • 如何用Java捕获音频数据

    我想访问我的麦克风用 Java 录制的音频数据 我该怎么做呢 我的目标是保存录制的音频数据并同时向用户播放 如果您不需要 JMF 中的任何附加功能 我会避免使用它 因为开发已经停止 最后一个版本是 2004 年 它与 Java 6 存在兼容
  • Java检测音频文件(mp3)

    我有这段代码可以读取 mp3 文件 import java io File import java io IOException import javax sound sampled AudioSystem import javax sou
  • Java DocumentBuilder - XML 文件中的缩进错误

    我尝试使用 DocumentBuilder 用 Ja va 编写一个简单的 XML 文件 我期望 XML 文件如下所示
  • 从 Apache Kafka 中的主题删除消息

    所以我是 Apache Kafka 的新手 我正在尝试创建一个简单的应用程序 以便我可以更好地理解 API 我知道这个问题在这里被问了很多 但是如何清除存储在主题上的消息 记录 我看到的大多数答案都说要更改消息保留时间或删除并重新创建主题
  • Spring MVC 和复选框

    我正在使用 Spring MVC 3 0 并且不能完全看到这个问题的所有部分 我的控制器将生成一个域对象列表 假设有一个简单的 User 对象 具有firstName lastName age 和role 属性 我想在表中输出该用户列表 每
  • 寻找基于循环固定大小数组的双端队列

    我正在寻找一个Deque其具有以下特点 它有固定的大小 如果我在头 尾添加元素 则另一端的元素会丢失 它是基于数组的 所以我可以在恒定时间内访问随机元素 我可以在前面或末尾添加元素 双端队列 我检查了Deque的实施JCF但我没有找到任何合
  • Java中不同格式的字符串解析为日期

    我想转换String to Date以不同的格式 例如 我从用户那里得到 String fromDate 19 05 2009 i e dd MM yyyy format 我想转换这个fromDate作为日期对象 yyyy MM dd fo
  • JVM锯齿状空闲进程

    我目前正在进行一项涉及 JVM 及其内存使用工作原理的研究 我不明白的是 JVM在空闲时用什么填充它的内存 只是为了在堆几乎达到时释放它 为什么使用的内存不只有一条平线 顺便说一句 这个 java 应用程序托管在 glassfish 上 但

随机推荐

  • 抑制 r 可反应基团聚合中的括号

    我正在使用 R 的可反应包来创建按特定变量分组的数据表 这将显示一个折叠的表格 可以展开该表格以显示子行 折叠的行标题旁边有一组括号 指示下面嵌套了多少个子行 是否可以抑制这组括号使其不显示 这会让我的用户感到困惑 这是一个例子 如果我运行
  • Vaadin 14 中列标题中的文本可以换行到网格中的多行吗?

    在上图中 我有一个Grid https vaadin com components vaadin grid在 Vaadin 14 中创建 请注意列标题 未换行的红线 我试图弄清楚是否有可能 并且安全 简单 标准 让列标签换行 例如 就像在
  • Unicode 字符在 IE6 中以不同大小呈现

    在 Web 应用程序中 我必须显示一个特殊的 unicode 字符 称为BLACK DIAMOND U 25C6 see here http www fileformat info info unicode char 25c6 index
  • 解析 webconfig 时 Windows Azure 间歇性身份错误

    这个问题在发布后似乎是随机发生的 该网站将正常工作然后砰的一声 我在解析 webconfig 时遇到此错误 我只是重新发布 它再次运行得很好 发布时 我选中了删除现有文件的框 这样就不会有垃圾 这是一个使用 net 4 5 和与 Yahoo
  • jQuery:如何判断选项卡/窗口何时获得焦点

    是否有一个事件我可以注册 每次用户单击一个选项卡时都会触发该事件 这意味着他们在我页面的选项卡上 单击另一个选项卡 然后返回我的选项卡 EDIT 我所说的选项卡是指浏览器选项卡 而不是 jQueryUI 选项卡 Matijis 在评论中提供
  • ReportLab:阿拉伯字符显示为黑色方块。

    我尝试了几个星期用阿拉伯语创建 pdf 报告 但失败了 我使用 ReportLab 和两个包来构建阿拉伯字符 即 bidi algorithm 和 arabic reshaper 在控制台中 字符组织良好 但在 pdf 中只有黑色方块 im
  • 为什么 Stream.allMatch() 对于空流返回 true?

    我和我的同事遇到了一个错误 这是由于我们假设空流调用allMatch 会回来false if myItems allMatch i gt i isValid do something 当然 假设而不阅读文档是我们的错误 但我不明白的是为什么
  • 从每个助手调用的组件中的产量

    这是我的组件模板的一部分 each displayResults li class if controller template yield else span class displayHelper controller searchPa
  • 为什么启动 2 个以上 AVD 仅在特定条件下有效

    我遇到了我不完全理解的奇怪问题 我尝试从终端启动 2 个以上 AVD 它甚至适用于 4 个 AVD 但仅在特殊条件下有效 我有一个用于 3 个 AVD 的代码 echo no ANDROID HOME tools android creat
  • 开发 ARM 处理器需要什么? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我熟悉 X86 64 架构和汇编 我想开始开发 ARM 处理器 但与桌面处理器不同的是 我没有真正的
  • 在 Debian Squeeze 上安装 mysql2 gem 时出错

    我在 Debian Squeeze 上安装 mysql2 gem 时遇到了这个 流行 错误 gem install mysql2 Building native extensions This could take a while ERRO
  • VB中如何获取当前可执行文件的完整路径?

    我使用 VB 创建了一个 Windows 应用程序 每当我执行exe 我想获取当前目录exe以编程方式归档 例如 现在 我正在执行exe文件输入d myApp test exe 每当我双击exe我想获取文件的路径exe文件如d myApp
  • 如何从 NSView 或 NSWindow 创建 AXUIElementRef?

    关于 macOS Accessibility API 是否可以创建对应于 NSView 或 NSWindow 的 AXUIElementRef 在 Carbon 时代 似乎有一种方法可以使用 AXUIElementCreateWithHIO
  • 所有虚函数都需要在派生类中实现吗?

    这似乎是一个简单的问题 但我在其他地方找不到答案 假设我有以下内容 class Abstract public virtual void foo 0 virtual void bar class Derived Abstract publi
  • 加载位图图像后,Jetpack compose (Glance) 小部件不会重新组合

    我正在尝试使用具有 SVG 图像支持的 Glance Jetpack 创建一个 Appwidget 我可以使用下载位图 ImageRequest Builder this data url decoderFactory SvgDecoder
  • 如何在django中的同一页面上拆分帖子视图

    我不知道这个问题是否有意义 但我对此感到很困惑 我有一个帖子列表视图 它正在此处呈现一些帖子 My question is how can I split the sections of the page something like th
  • 使用字母数字模式将 URL 编码为 QR 码?

    我需要为我的网址构建一个尽可能小的二维码 它足够短以使用缩短器 并且我不想依赖它们的可靠性 HTTP SUBDOM DOMAIN EU 8位字节模式太浪费地方了 我在那里可以到达版本2 但是版本1在字母数字模式 有没有办法将字母数字模式设置
  • 将现有 MATLAB 绘图绘制到另一个图形中

    我使用绘图命令绘制图形 然后使用设置命令更改其许多属性 我还存储了绘图的句柄 例如 h1 我需要的是稍后在我的代码中使用句柄再次绘制相同的图形 我检查了plot命令 没有找到任何接受句柄的版本 我还考虑获取 Xdata 和 Ydata 并使
  • 使用对话框完成 AJAX 调用后如何重新加载页面?

    因此 一旦用户单击打开的链接 我就会有一个带有表单的对话框用户界面 一旦他们单击 添加按钮 它就会创建一个 AJAX 调用 将数据提交到数据库中 我需要添加的是 reload 函数来刷新页面 如何添加重新加载功能 我尝试添加 windows
  • 当光标位于子组件上时,JPanel 不生成 MouseEvents

    这对我来说有点奇怪 但是当光标位于 JTextField 和 JToolBar 子组件上时 JPanel 不会生成 MouseEvents 但当光标位于 JLabel 上时 它会生成 MouseEvents 有人可以解释我为什么吗 有没有办