我有一个 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/