为什么......
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包装在并行组中导致它忽略对齐?将对齐添加到aButton本身也没有效果。
我想做这样的事情,以便在aTextArea下面混合使用前导,尾随和中心对齐组。在我看来,GroupLayout相当有限,如果它无法应对这一点。
答案 0 :(得分:0)
这......
.addGroup(groupLayout.createParallelGroup(GroupLayout.Alignment.CENTER)
...
指定组内的组件与其他组件集中对齐。
要将组(组内的所有元素)与父组对齐,请将对齐指定为addGroup()方法的参数,而不是createParallelGroup():
.addGroup(GroupLayout.Alignment.CENTER, groupLayout.createParallelGroup()
...
我没有找到此文档,但似乎 addGroup(GroupLayout.Group组)表单(无对齐规范)应用了LEADING对齐。
通过这种方式,SequentialGroups也可以与父组对齐。