java - 如果子级未使用事件,则允许父级处理鼠标事件

标签 java events swing parent-child

我有这个框架:

alt text

发生的情况是这样的:

  1. 当我位于粉红色面板上时,滚动 Pane 工作得很好。
  2. 当我将鼠标放在深灰色 JTextArea 上时,滚动 Pane 不会收到该事件。

一般来说,我的问题是,如果组件没有处理该特定事件,即使该组件具有监听器并且已启用,如何确保该组件的父级接收该事件?

也许一个具体的例子就可以了。

你可以看到计算器,计算器绘制在可缩放的图像面板上,并且可以通过 Ctrl + Wheel 事件进行放大和缩小,但是当我不按 Ctrl 时,我希望滚动 Pane 接收事件并滚动视口(viewport)。 (我认为这就是总结)

亚当。

最佳答案

虽然不完全“整洁”,但我的 answer in this question可能会适合做你想做的事。

您可以使用 AWTEvent.MOUSE_WHEEL_EVENT_MASK 而不是 MOUSE_EVENT_MASK,并在控制键状态合适时将事件传递到滚动 Pane 。

(如果幸运的话,有人会发布一个“真正的”机制来将事件转发到父组件)。

关于java - 如果子级未使用事件,则允许父级处理鼠标事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3887853/

相关文章:

java - 使用 Java 的必应新闻搜索 API

java - org.hibernate.MappingException : Composite primary key as a foreign key in another table

java - Socket 的 PrintWriter 在关闭之前不会发送

javascript - Chartjs注释插件点击事件

jquery - 使用 jQuery 单击时切换或添加和删除元素的 ID

java - 用于查找以下字符串的 Eclipse 正则表达式

wpf - 在WPF中,如何在使用PreviewKeyDown处理后取消按键?

Java Swing 无法向面板添加多个面板

java - 使用背景图像分层 JPanel

java - 如何设置我在加载其他 jframe 类时 setvisible(false) 的 JFrame?