我正在尝试制作简单的游戏布局。我从容器开始布局--所有的容器都和我的例子类似(它意味着JPanel,setlayout,add components,return JPanel)。
整体布局结构:(这3个都在主布局中)
upper BorderLayout.PAGE_START;//菜单
center - BorderLayout.PAGE_CENTER;//centerContainer()
bottom - BorderLayout.PAGE_END;//statusBar -仅包含文本的容器
这3个容器的放置工作正常,但问题是在centerContainer中的放置。
中心容器结构:3个容器- aboutServerContainer、aboutGameContainer、gameContainer。
gameContainer的大小为450x450
我想在serverInfo下启动与gameContainer相同高度的serveInfo和gameInfo,但它以某种方式占据了serverInfo和gameInfo,但它也在gameContainer下腾出了自由空间(我不想在这里有任何自由空间)。

private Container centerContainer() {
JPanel centerJPanelJP = new JPanel();
GridBagConstraints gbc = new GridBagConstraints();
stredniJPanelJP.setLayout(new GridBagLayout());
//gbc.fill = GridBagConstraints.BOTH;
gbc.gridx = 0;
gbc.gridy = 0;
gbc.gridheight = 1;
centerJPanelJP.add(aboutServerContainer(),gbc);
gbc.gridheight = 1;
gbc.gridy = 1;
centerJPanelJP.add(aboutGameContainer(),gbc);
gbc.gridheight = 2;
gbc.gridx = 0;
gbc.gridy = 0;
centerJPanelJP.add(gamePanelContainer(),gbc);
return centerJPanelJP;
}发布于 2012-02-07 23:26:04
看起来您正在尝试实现这样的布局:
+-----+-----+
| A | |
+-----+ C |
| B | |
+-----+-----+要实现这一点,网格约束应如下所示:
| x y width height
--+---------------------
A | 0 0 1 1
B | 0 1 1 1
C | 1 0 1 2 在我看来,始终如一地使用“强大的”布局管理器比处理特殊情况、嵌套面板和不灵活的排列要好得多。
发布于 2012-02-07 23:08:18
为什么不这样做:
有一个主BroderLayout
https://stackoverflow.com/questions/9178511
复制相似问题