【发布时间】:2013-05-13 11:05:15
【问题描述】:
我有一个自定义组件GameViewCanvas extends JPanel,它将容纳许多图块(800x800 纹理)。现在在 GameViewCanvas 中,我重写了 paint() 方法,这样它就会在转换后的画布上绘制孩子(缩放、平移和旋转)。
我现在想将诸如 MouseEvent 和 MouseMotionEvent 之类的事件委托给各自的孩子——当然问题是 Swing 不知道孩子在实际框架上的位置。我想我也许可以在父级中重写像 getComponentAt 这样的方法,但没有这样的运气 - 我认为 Swing 是直接循环遍历子级?
也许我做错了,所以请指教。 提前致谢。
【问题讨论】:
-
有趣的问题,1+。我不知道解决方案,但如果这是我的问题,我会搜索 Swing 源代码,看看是否能给我一个线索。
-
Google
JXLayer(在 Java 7 中也称为JLayer)。这正是你刚才问的。因为它们已经从网上消失了,所以我提供了所有示例 here
标签: java swing events transformation delegation