0

我有一个 30x30 的 JPanel GridLayout。所以 30x30 帧中的每个单元格都是一个带有图像的 JPanel。地图上的 Aka Tiles。

我需要在 keyPress 上围绕这张地图移动我的角色(红色 JPanel)。

我怎样才能做到这一点?我看不到在 GridLayout 中替换组件的方法:S

另外,有没有比替换组件更好的方法,因为如果我替换它,我必须跟踪旧组件,以便当角色移动到下一个图块时,它会替换角色曾经所在的旧组件.

4

2 回答 2

1

我怎样才能做到这一点?我没有看到替换 GridLayout 中的组件的方法

为什么需要更换组件?只需更换图像。

您需要跟踪最后一个组件并保存其图像。然后当你搬到一个新的广场时,你:

a) 恢复旧图像 b) 保存新图像 c) 将红色图像添加到该位置。

于 2013-05-06T00:13:20.470 回答
1

GridLayout 不是解决您问题的好方法。原因:GridLayout 将始终按照您编写“container.add(component)”语句的顺序对组件进行排序。除了在之前的所有位置插入虚拟组件外,您不能将组件放置在特定位置。

您可能想尝试 GridBagLayout.. 在 GridBagLayout 中,您在关键事件上要做的就是更新动态面板的位置,它将显示在该位置的固定面板的顶部.. 无需记住旧组件

于 2013-05-05T23:56:07.507 回答