首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >嵌套GridBagLayout -如何使子列与父列对齐

嵌套GridBagLayout -如何使子列与父列对齐
EN

Stack Overflow用户
提问于 2015-11-22 19:28:07
回答 1查看 109关注 0票数 0

我有一个JDialog,它有一个GridBagLayout作为布局。它包含一个JPanel子元素,它也有一个GridBagLayout作为布局。父字段包含其他字段,它们分别在两列(标签编辑器)中被释放。子字段包含几个字段,每个字段以三列(标签-编辑器-标签)进行处理。我希望子列和父列都对齐。现在的情况如下:

家长相关代码:

代码语言:javascript
复制
GridBagConstraints contrainte = new GridBagConstraints();
Insets insetsLabel = new Insets(0, 0, 0, 0);
Insets insetsChampsEdit = new Insets(0, 10, 0, 0);

contrainte.ipady = 10;
contrainte.gridx = 0;
contrainte.gridy = 1;
contrainte.fill = GridBagConstraints.HORIZONTAL;
contrainte.gridwidth = 1;
this.add(this.m_lblPremierDepart, contrainte);

contrainte.gridx = 1;
contrainte.insets = insetsChampsEdit;
this.add(this.m_timePicker, contrainte);

contrainte.gridx = 0;
contrainte.gridy = 2;
contrainte.insets = insetsLabel; // reset insets
contrainte.gridwidth = 3;
this.add(this.m_panneauDistribution, contrainte);

contrainte.gridy = 3;
contrainte.gridwidth = 1;
this.add(this.m_lblNbMaxVehicules, contrainte);

contrainte.gridx = 1;
contrainte.insets = insetsChampsEdit;
this.add(this.m_spinNbMaxVehicules, contrainte);

与儿童有关的守则:

代码语言:javascript
复制
GridBagConstraints contrainte = new GridBagConstraints();
Insets insetsLabel = new Insets(0, 0, 0, 0);
Insets insetsChampsEdit = new Insets(0, 10, 0, 0);

contrainte.ipady = 10;
contrainte.gridx = 0;
contrainte.gridy = 0;
contrainte.fill = GridBagConstraints.HORIZONTAL;
this.add(this.m_lblPlusPetit, contrainte);

contrainte.gridx = 1;
contrainte.insets = insetsChampsEdit;
this.add(this.m_spinPlusPetit, contrainte);

contrainte.gridx = 2;
this.add(new JLabel("minute(s)"), contrainte);

contrainte.gridx = 0;
contrainte.gridy = 1;
contrainte.insets = insetsLabel; // reset insets
this.add(this.m_lblMoyen, contrainte);

contrainte.gridx = 1;
contrainte.insets = insetsChampsEdit;
this.add(this.m_spinMoyen, contrainte);

contrainte.gridx = 2;
this.add(new JLabel("minute(s)"), contrainte);

contrainte.gridx = 0;
contrainte.gridy = 2;
contrainte.insets = insetsLabel; // reset insets
this.add(this.m_lblPlusGrand, contrainte);

contrainte.gridx = 1;
contrainte.insets = insetsChampsEdit;
this.add(this.m_spinPlusGrand, contrainte);

contrainte.gridx = 2;
this.add(new JLabel("minute(s)"), contrainte);

是否有一种方法可以通过GridBagLayout获得所需的行为?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-22 20:01:12

子字段包含几个字段,每个字段以三列(标签-编辑器-标签)进行处理。

您还需要将其设置为2列面板:

  1. 标签为第一列
  2. 面板(包含编辑器和标签)作为第二列)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33859204

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档