我正在尝试制作简单的游戏布局。
我从容器中制作布局 - 所有容器都与我的示例类似(它表示JPanel,setlayout,添加组件,返回JPanel)。
整个布局的结构:(这3个在主要布局中)
upper - BorderLayout.PAGE_START; //菜单
中心 - BorderLayout.PAGE_CENTER; // centerContainer()
bottom - BorderLayout.PAGE_END; // statusBar - 只是带文本的容器
放置这3个容器工作正常,但问题是放在centerContainer中
中心容器结构:3个容器 - aboutServerContainer,aboutGameContainer,gameContainer。
gameContainer的尺寸为450x450
我想以与serverInfo下的gameContainer和gameInfo相同的高度启动serveInfo, 但它以某种方式输入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;
}
答案 0 :(得分:3)
看起来你正在尝试实现这样的布局:
+-----+-----+
| A | |
+-----+ C |
| B | |
+-----+-----+
要实现这一点,您的网格约束应为:
| x y width height
--+---------------------
A | 0 0 1 1
B | 0 1 1 1
C | 1 0 1 2
在我看来,最好始终如一地使用“强大的”布局管理器,而不是处理特殊情况,嵌套面板和衬砌内容的不灵活性。
答案 1 :(得分:0)
为什么不这样:
有一个主要的BroderLayout