java - 在 GridLayout 中移动组件

标签 java swing awt layout-manager grid-layout

我有一个 30x30 的 JPanel 网格布局。因此 30x30 帧中的每个单元都是一个带有图像的 JPanel。又名 map 上的瓷砖。

我需要通过按键在这张 map 上移动我的角色(红色 JPanel)。

我该怎么做?我没有看到替换 GridLayout 中组件的方法:S

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

最佳答案

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

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

关于java - 在 GridLayout 中移动组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16390152/

相关文章:

java - 检测鼠标滚轮停止

java - 尝试使用java更改背景颜色时出错

java - 在 applet 中使用 main 方法是否合适?

java - 在 java swing 中组件移动完成后想要记录一次组件位置

java - java中的结果集已关闭错误

java - gui 窗口不会在 netbeans java 中显示

java - 如何通过点击右上角的 "x"来关闭一个Frame?

java - 你如何计算连通图的数量?

java - 从 URL 检查内容类型

java - 如何在相等按钮后继续计算