当前位置: 首页 > 知识库问答 >
问题:

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

闾丘淇
2023-03-14

我有一个将GridBagLayout作为布局的JDialog。它包含一个JPanel子级,该子级也有一个GridBagLayout作为布局。父级包含其他字段,每个字段设置在两列中(标签-编辑器)。子级包含几个字段,每个字段设置在三列中(标签-编辑器-标签)。我希望子级和父级的第一列对齐在一起。这是它现在的样子:

家长相关代码:

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);

儿童相关代码:

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获得所需的行为?

共有1个答案

郁光熙
2023-03-14

子项包含几个字段,每个字段分为三列(标签-编辑器-标签)。

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

  1. 标签作为第一列
  2. 面板(包含编辑器和标签)作为第二列)
 类似资料:
  • 我用的是Java 8号。我有一份汽车物品清单。我想按特定的顺序对它们进行排序。 每个汽车对象都属于一个模型。我喜欢按型号对汽车对象列表进行排序。排序后的列表应该是按照以下顺序,有车型的轿车SEDAN,然后是宝马,然后是独角兽。 所以当我打印排序后的列表时,它应该是这样的 如何使用自定义比较器在模型枚举上实现这种排序顺序。 如果你能帮忙,我很感激

  • 我正在尝试映射这个JSON 我自己创建的java对象 我得到的错误是: 通用域名格式。fasterxml。杰克逊。数据绑定。exc.MismatchedInputException:无法反序列化

  • 问题内容: 有一个简单的POJO- 内部带有子类别。嵌套可能会很深,因为每个子类别都可能包含子子类别,依此类推。我想通过jersey 返回为REST资源,序列化为json(由jackson提出)。问题是,我不能真正限制序列化的深度,因此所有类别树都可以序列化。 有没有办法在完成第一级(即具有其第一级子类别)后立即停止对杰克逊进行序列化的对象? 问题答案: 如果可以从POJO中获取当前深度,则可以使

  • 我有一个DTO列表,我需要将这个DTO映射到两个不同的实体对象列表。我不熟悉Java和Springboot。我找到了两个DTO映射到一个实体对象的示例。例如http://modelmapper.org/getting-started/ 个人实体- 地址实体- DTO: 我需要将上面的DTO列表映射到下面的实体对象列表: 我如何映射一个列表的人的DTO到列表的人和列表的地址?

  • 问题内容: 在下面的函数中,我获得带有属性的textarea对象。 此处,嵌套解构使用和变量。但是变量不起作用。 问题答案: 第一个解构仅创建和变量。如果要创建为变量,则需要再次声明。 您可以在Babel编译器上对其进行测试: 这段代码: 被转移到: 如您所见,未创建变量。