我有一个自定义的组件GameViewCanvas extends JPanel,它将包含许多瓷砖(800x800纹理)。现在在GameViewCanvas中,我已经覆盖了paint()方法,这样它就可以在转换后的画布上绘制子对象(缩放、平移和旋转)。
我现在想把像MouseEvent和MouseMotionEvent这样的事件委托给各自的子对象--当然问题是Swing不知道子对象在实际框架中的位置。我想我也许可以在父级中重写一个像getComponentAt这样的方法,但是没有这样的幸运--我认为Swing是直接通过子级循环的?
也许我做的一切都错了,所以请给我建议。提前谢谢。
发布于 2013-05-18 18:52:40
看看JXLayer吧。它的功能完全符合您刚才的要求。
Piet Blok有一些很好的例子,不幸的是,这些例子已经从网上消失了。为此,我让它们在here上可用。
看一下pbjar源代码中的TestWrapped演示。这可能是最好的例子。

ps - JXLayer现在是Java7的正式组成部分,也就是众所周知的JLayer
https://stackoverflow.com/questions/16623276
复制相似问题