Swing:将事件委托给已转换父级的子组件

时间:2013-05-18 10:33:42

标签: java swing events transformation delegation

我有一个自定义组件GameViewCanvas extends JPanel,可以容纳多个图块(800x800纹理)。现在在GameViewCanvas中,我已经覆盖了paint()方法,因此它将在转换的画布上绘制子项(缩放,平移和旋转)。

我现在想要将像MouseEvent和MouseMotionEvent这样的事件委托给相应的孩子 - 问题当然是Swing不知道孩子们在实际框架中的位置。我想我可能只能在父级中覆盖像getComponentAt这样的方法,但没有这样的运气 - 我认为Swing直接在孩子们身上循环?

也许我说这一切都错了,所以请建议。 提前致谢。

1 个答案:

答案 0 :(得分:4)

看看JXLayer。它完全符合您的要求。

Piet Blok有一些很好的例子,不幸的是,他们已经从网上消失了。为此,我已将它们提供给here

查看pbjar源代码中的TestWrapped演示。它可能是(其中)最好的例子。

enter image description here

ps - JXLayer现在正式成为Java 7的一部分,称为JLayer