【问题标题】:GroupLayout alignmentGroupLayout 对齐
【发布时间】:2018-08-03 13:11:56
【问题描述】:

为什么...

Group horizontalGroup = groupLayout.createSequentialGroup()
    .addGroup(groupLayout.createParallelGroup()
            .addComponent(aTextArea)
            .addComponent(aButton,GroupLayout.Alignment.CENTER));

Group verticalGroup = groupLayout.createSequentialGroup()
    .addComponent(aTextArea)
    .addComponent(aButton);

...给这个(如预期的那样)

+--------------------------------------------------------------+
|+-------------------------------------------------------+     |
||                       aTextArea                       |     |
||                                                       |     |
|+-------------------------------------------------------+     |
|                        [aButton]                             |
|                                                              |
+--------------------------------------------------------------+

但是……

Group horizontalGroup = groupLayout.createSequentialGroup()
    .addGroup(groupLayout.createParallelGroup()
            .addComponent(aTextArea)
            .addGroup(groupLayout.createParallelGroup
                                         (GroupLayout.Alignment.CENTER)
                    .addComponent(aButton)));

Group verticalGroup = groupLayout.createSequentialGroup()
    .addComponent(aTextArea)
    .addComponent(aButton);

给这个?

+--------------------------------------------------------------+
|+-------------------------------------------------------+     |
||                       aTextArea                       |     |
||                                                       |     |
|+-------------------------------------------------------+     |
|[aButton]                                                     |
|                                                              |
+--------------------------------------------------------------+

为什么将 aButton 包装在 Parallel Group 中会导致它忽略对齐?将对齐也添加到 aButton 本身没有任何效果。

我想做这样的事情,以便在 aTextArea 下方混合前导、尾随和中心对齐组。在我看来,如果 GroupLayout 无法解决这个问题,它是相当有限的。

【问题讨论】:

    标签: java alignment grouplayout


    【解决方案1】:

    这...

    .addGroup(groupLayout.createParallelGroup(GroupLayout.Alignment.CENTER)
        ...
    

    指定组内的组件彼此集中对齐。

    要将组(组内的所有元素)与父组对齐,请将对齐指定为 addGroup() 方法的参数,而不是 createParallelGroup():

    .addGroup(GroupLayout.Alignment.CENTER, groupLayout.createParallelGroup()
        ...
    

    我没有找到这个文档,但似乎 addGroup(GroupLayout.Group group) 表单(没有对齐规范)应用了 LEADING 对齐。

    通过这种方式,SequentialGroups 也可以与父组对齐。

    【讨论】:

      猜你喜欢
      • 2015-09-13
      • 2017-07-03
      • 1970-01-01
      • 2011-02-09
      • 2015-09-10
      • 2013-01-30
      • 1970-01-01
      • 1970-01-01
      • 2012-08-23
      相关资源
      最近更新 更多