【发布时间】:2016-01-11 21:36:11
【问题描述】:
我在使用 GridBagLayout 中的 GridLayout 时遇到问题。
我希望我的 GridLayout 适合 GridBagLayout 的宽度。
我做了一个说明我正在尝试做的事情:
但这是我得到的:
"Test, version : 1.5, Disponible" 是一个 1 列 3 行的 GridLayout。 “Mitramail,1.0 版,Disponible”是另一个 1 列和 3 行的 GridLayout。 我正在尝试将它们添加到另一个具有 x 行和 2 列的 GridLayout 中。所以通常它们应该彼此相邻,但它们是一个在另一个之下。
代码如下:
GridBagConstraints c = new GridBagConstraints();
c = new GridBagConstraints();
c.gridx = 0;
c.gridy = 1;
c.anchor = GridBagConstraints.WEST;
c.weightx = 1;
panelDynamique.add(new JLabel("Disponible"), c);
c = new GridBagConstraints();
c.gridx = 0;
c.gridy = 2;
c.fill = GridBagConstraints.HORIZONTAL;
panelDynamique.add(new JSeparator(), c);
panelDispo.setLayout(new GridLayout(this.getNbAppFor("Disponible") /*Variable X, replace by 2 for better understanding*/, 2));
c = new GridBagConstraints();
c.gridx = 0;
c.gridy = 3;
//c.fill = GridBagConstraints.HORIZONTAL;
c.anchor = GridBagConstraints.NORTH;
c.weighty = 1;
panelDynamique.add(panelDispo, c);
c = new GridBagConstraints();
c.gridx = 0;
c.gridy = 4;
c.fill = GridBagConstraints.HORIZONTAL;
panelDynamique.add(new JSeparator(), c);
for(Entry<String, String> entry : this.HMServ().entrySet()){
JPanel tmp = new JPanel();
tmp.setLayout(new GridLayout(3, 1));
tmp.add(new JLabel(entry.getKey())); //1) Test, 2) Mitramail
tmp.add(new JLabel("Version : " + entry.getValue())); //1) Version 1.5, 2) 1.0
tmp.add(new JLabel(this.infoVersion(entry.getKey(), entry.getValue()))); //Disponible
panelDispo.add(tmp);
}
任何人都知道如何让我的“绿色”GridLayout 填充红色 GridBagLayout 宽度并有 2 列来添加动态 GridLayout,如下所示:
1 | 2
3 | 4
5 | 6
7 | ...
?
感谢您的关注。
【问题讨论】:
标签: java swing layout panel gridbaglayout