Swing:将事件委托给已转换父级的子组件
我有一个自定义组件GameViewCanvas extends JPanel
,它将包含许多区块(800×800纹理)。 现在在GameViewCanvas中我重写了paint()
方法,以便它将子项绘制在转换后的canvas上(缩放,平移和旋转)。
我现在想要将像MouseEvent和MouseMotionEvent这样的事件委托给相应的孩子 – 问题当然是Swing不知道孩子们在实际框架中的位置。 我以为我可能只能在父级中覆盖像getComponentAt
这样的方法但没有这样的运气 – 我认为Swing直接在子代中循环?
也许我说这一切都错了,所以请建议。 提前致谢。
看看JXLayer
。 它完全符合您的要求。
Piet Blok有一些很好的例子,不幸的是,这些例子已经从网上消失了。 为此,我在这里提供了它们。
看一下pbjar源代码中的TestWrapped
演示。 这可能是最好的例子之一。
ps – JXLayer
现在正式成为Java 7的一部分,称为JLayer