3

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

我现在想将诸如 MouseEvent 和 MouseMotionEvent 之类的事件委托给各自的孩子——问题当然是 Swing 不知道孩子在实际框架上的位置。我想我也许可以像getComponentAt在父级中那样覆盖一个方法,但没有这样的运气 - 我认为 Swing 是直接循环遍历子级?

也许我对这一切都错了,所以请指教。提前致谢。

4

1 回答 1

4

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

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

看一下TestWrappedpbjar 源码中的演示。这可能是(其中)最好的例子。

在此处输入图像描述

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

于 2013-05-18T10:52:39.827 回答