Java JPanel在添加组件时自动移动

Java JPanel在添加组件时自动移动,java,swing,user-interface,jpanel,layout-manager,Java,Swing,User Interface,Jpanel,Layout Manager,我不熟悉用Java构建GUI,在我的第一次尝试中,我决定创建一个扫雷舰克隆。一切都进行得很顺利,直到在运行时生成字段磁贴为止。我有一个字段JPanel(FlowLayout),它足够大,可以包含16*16个矿牌,其中每个矿牌本身就是一个JPanel(CardLayout,由标签和顶部的按钮组成)。我设法使瓷砖正确显示,但我有一个小问题。添加第13个磁贴后,每个下一个磁贴都会将整个“现场面板”以及其上方的一些组件向右移动,这些组件不是“现场面板”本身的一部分。如果我添加所有256个平铺,整个字段就

我不熟悉用Java构建GUI,在我的第一次尝试中,我决定创建一个扫雷舰克隆。一切都进行得很顺利,直到在运行时生成字段磁贴为止。我有一个字段JPanel(FlowLayout),它足够大,可以包含16*16个矿牌,其中每个矿牌本身就是一个JPanel(CardLayout,由标签和顶部的按钮组成)。我设法使瓷砖正确显示,但我有一个小问题。添加第13个磁贴后,每个下一个磁贴都会将整个“现场面板”以及其上方的一些组件向右移动,这些组件不是“现场面板”本身的一部分。如果我添加所有256个平铺,整个字段就会离开屏幕,上面的组件也会离开屏幕

这是什么原因造成的?我如何修复它

以下是问题和表单设计的一些截图:


您有一个足够大的字段JPanel(FlowLayout),可以容纳16*16个矿砖。将此布局更改为GridLayout。你可以在这里看到参考资料:

我建议在该字段中使用。要更快地获得更好的帮助,请发布一个(最小完整可验证示例)或(简短、自包含、正确的示例)。除了@kiheru的建议之外,还可以看到这个使用
GridLayout
创建棋盘的方法。为什么要空,GridLayout不是更好的选择哦,是的,我忘了这个了。>,更好………@bayuforest我尝试了网格布局。在移动的幅度上有了很大的改进,但它仍然向右移动了一点:我认为JFrame中的JPanel比JFrame大。