[英]GridBagLayout troubles
我正在嘗試制作簡單的游戲布局。 我從Containers進行布局-所有容器都與我的示例相似(這意味着JPanel,布局,添加組件,返回JPanel)。
整體布局的結構:(這3個位於主布局中)
上部-BorderLayout.PAGE_START; //菜單
中心-BorderLayout.PAGE_CENTER; // centerContainer()
底部-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;
}
看起來您正在嘗試實現如下布局:
+-----+-----+
| A | |
+-----+ C |
| B | |
+-----+-----+
為此,您的網格約束應為:
| x y width height
--+---------------------
A | 0 0 1 1
B | 0 1 1 1
C | 1 0 1 2
我認為,最好始終使用“功能強大”的布局管理器,而不是處理特殊情況,嵌套面板以及將內容排列不靈活的問題。
為什么不這樣:
有一個主要的BroderLayout
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.