使用BorderLayout与JPanels的间距不正确

时间:2015-01-19 20:50:58

标签: java swing jpanel layout-manager border-layout

我的JPanels使用BorderLayout时遇到了烦人的问题。

    this.setLayout(new BorderLayout(0, 0)); 
    JPanel panel = new JPanel(new BorderLayout(0, 0));
    panel.add(new Slot(), BorderLayout.SOUTH);
    panel.add(new MapGUI(), BorderLayout.NORTH);

    this.add(panel, BorderLayout.CENTER);

这是我的Inventory JPanel的构造函数。 Slot()和MapGUI()是扩展JPanel的类。游戏运行时,屏幕如下所示: enter image description here

显然,面板完全关闭​​,两者都不在屏幕上。我怎样才能解决这个问题?谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

根据BorderLayout的JavaDocs:

  

根据组件的首选尺寸和容器尺寸的限制来布置组件。 NORTH和SOUTH组件可以水平拉伸; EAST和WEST组件可以垂直拉伸; CENTER组件可以水平和垂直拉伸,以填充剩余的空间。

您是否设置了首选尺寸?

如果要垂直对齐组件,可能需要尝试BoxLayout