如何在GroupLayout中对齐



我必须使用GroupLayout制作这个面板,我已经为它写了以下代码

GroupLayout layout = new GroupLayout(this);
this.setLayout(layout);
layout.setAutoCreateContainerGaps(true);
layout.setAutoCreateGaps(true);
layout.setHorizontalGroup(layout
  .createSequentialGroup()
  .addComponent(label)
  .addGroup(layout.createParallelGroup(GroupLayout.Alignment.CENTER)
              .addComponent(installButton).addComponent(installProgressBar)
              .addComponent(upadteLabel).addComponent(upadteButton)
              .addComponent(removeButton)));
layout.setVerticalGroup(layout
  .createParallelGroup()
  .addComponent(label)
  .addGroup(layout
              .createSequentialGroup()
              .addComponent(installButton)
              .addGroup(layout.createParallelGroup()
                          .addComponent(installProgressBar)
                          .addComponent(upadteLabel))
              .addComponent(upadteButton).addComponent(removeButton)));
layout.linkSize(SwingConstants.HORIZONTAL, installButton,
                installProgressBar, upadteLabel, upadteButton, removeButton);

installProgressBar和updateLabel必须共享相同的空间(已完成)。

但这并不能使按钮正确对齐,我曾尝试在不同的地方使用GroupLayout.Aalignment.TRAILING,但无法使其正常工作。\基本上,我希望标签是固定大小的(我可以这样做),标签是左对齐的,而按钮必须是右对齐的。

有人能帮我解释一下路线是如何工作的吗。

要回答我自己的问题,添加preferredGap()就可以了。最后的代码是

layout.setHorizontalGroup(layout
  .createSequentialGroup()
  .addComponent(label, labelWidth, labelWidth, labelWidth)
  .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED,
                   GroupLayout.PREFERRED_SIZE, Short.MAX_VALUE)
  .addGroup(layout
              .createParallelGroup(GroupLayout.Alignment.CENTER)
              .addComponent(installButton, BUTTON_WIDTH, BUTTON_WIDTH,
                            BUTTON_WIDTH).addComponent(installProgressBar)
              .addComponent(updateLabel).addComponent(updateButton)
              .addComponent(removeButton)));
layout.setVerticalGroup(layout
  .createParallelGroup()
  .addComponent(label)
  .addGroup(layout
              .createSequentialGroup()
              .addComponent(installButton)
              .addGroup(layout.createParallelGroup()
                          .addComponent(installProgressBar)
                          .addComponent(updateLabel))
              .addComponent(updateButton).addComponent(removeButton)));
layout
  .linkSize(SwingConstants.HORIZONTAL, installButton, installProgressBar,
            updateLabel, updateButton, removeButton);

相关内容

  • 没有找到相关文章

最新更新