java - 与 Java Swing 的 GroupLayout 混合对齐

标签 java swing grouplayout

我正在尝试在我的应用程序中构建一个 GUI 窗口。我想要做的是有一个窗口,顶部有几个按钮,还有一个大文本区域。像这样:

+--------------------------------------------------+
| [button1] [button2]                    [button3] |
| +----------------------------------------------+ |
| | text area                                    | |
| |                                              | |
| |                                              | |
| |                                              | |
| +----------------------------------------------+ |
+--------------------------------------------------+

我快到了,使用 GroupLayout:

  layout.setHorizontalGroup(
    layout.createParallelGroup()
      .addGroup(layout.createSequentialGroup()
        .addComponent(button1)
        .addComponent(button2))
        .addComponent(closeWindow))
      .addComponent(textarea1)
  );

  layout.setVerticalGroup(
    layout.createSequentialGroup()
      .addGroup(layout.createParallelGroup()
        .addComponent(button1)
        .addComponent(button2)
        .addComponent(button3))
      .addComponent(textarea)
  );

问题是这最终导致 button3 与其他两个左对齐。我似乎无法弄清楚如何只在那个按钮上指定对齐方式。我可以在整个按钮栏上执行 GroupLayout.Alignment.TRAILING,但是这会击中所有 3 个按钮,这也不太正确。

那么正确的做法是什么?由于对齐仅适用于并行组,我认为其中包含两个顺序组的水平组不会有帮助吗?

我错过了什么?

最佳答案

在顺序组中添加间隙。保持水平组不变:

layout.setVerticalGroup(
    layout.createSequentialGroup()
      .addGroup(layout.createParallelGroup()
        .addComponent(button1)
        .addComponent(button2)
        .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
        .addComponent(button3))
      .addComponent(textarea)
  );

与这些参数的间隙就像一个“ Spring ”,占据了所有可用空间。

关于java - 与 Java Swing 的 GroupLayout 混合对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2670360/

相关文章:

java - 在Swing中对齐垂直和水平顺序组

java - Hamcrest 匹配器的冲突重载

Java:并发速度比简单的 for 循环慢

java - 在 JFrame 中包含两个以上面板?

java - 添加到 JFrame 时 KeyListeners 没有响应

java - 如何使用 GroupLayout 组织 2x2 自动调整大小的网格

Java 枚举以条件初始化

java - 将word xml转换为html,将html转换为word xml(使用Java)

java - JLayeredPane 和绘画

Java GroupLayout 异常