Java JPanel不需要的位置和/或尺寸

Java JPanel不需要的位置和/或尺寸,java,swing,size,border,jpanel,Java,Swing,Size,Border,Jpanel,我正在创建一个程序,其中有三个JPanel-2在屏幕的上半部分,1在下半部分。下面是这样定位它们的代码: people.setBounds(0,0,Math.round(getWidth()/3),Math.round(getHeight()/2)) resources.setBounds(people.getX()+people.getWidth(),0,Math.round(getWidth()/3),Math.round(getHeight()/2)) 相邻的.setBounds(res

我正在创建一个程序,其中有三个JPanel-2在屏幕的上半部分,1在下半部分。下面是这样定位它们的代码:
people.setBounds(0,0,Math.round(getWidth()/3),Math.round(getHeight()/2))
resources.setBounds(people.getX()+people.getWidth(),0,Math.round(getWidth()/3),Math.round(getHeight()/2))
相邻的.setBounds(resources.getX()+resources.getWidth(),0,Math.round(getWidth()/3),Math.round(getHeight()/2))

但不幸的是,我得到的结果是:

我试图让嵌板与窗户完美贴合,但正如您所见,它们比预期的大了一点。请提供一些帮助?

使用布局管理器,而不是设置框,让布局为您完成工作。通过嵌套一些使用简单GridLayout的JPanel,可以用最少的代码创建GUI。关于这方面的更多信息,请查看

Ok,但如果使用GridLayout,我无法让我的“相邻文明”面板填充第二行;由于某种原因,GridBagLayout的尺寸非常非常小…@Daniel——为什么你不能让你的JPanel填满第二排呢?整个GUI对两行一列使用GridLayout(2,1)。然后在上面的一行中添加一个JPanel,它使用GridLayout(1,2),表示1行2列。在上一行面板中,添加“人民…”和“资源”JPanel,在主GUI的下一行中添加“相邻Civ…”JPanel。关键是嵌套使用自己布局的JPanel。我实际上想到了另一个面板(“统计”),我刚刚创建了一个新的GridLayout(2,2),它工作得非常好。谢谢