定制 GridBagLayout 中组件的布局

您可以使用“定制布局”窗口来为 GridBagLayout 中的组件指定锚点位置、插入、填充、跨度、间隙和权重。
关于此任务

在 GridBagLayout 中,为了更好地显示组件,可视编辑器将使用约束(如填充、锚点、权重 x 和权重 y)的缺省值。例如,当您放置 javax.swing.JTextField 时,填充会设置为 HORIZONTAL(JTextField 的缺省值是 NONE),而权重 X 值会设置为 1(JTextField 的缺省值为 0)。

从其他布局管理器切换为 GridBagLayout 时,Java™ 可视编辑器会根据每个组件的现有边界为其生成约束。使用 GridBagConstraints 而不使用 NULL 布局的优点是可以根据每个组件的首选大小来确定其大小。因此,如果父窗口大小更改,或运行时由于不同的语言字符串而导致首选大小更改,那么该布局管理器会重新调整所有组件的大小和位置以便最大程度地利用可用空间。

要在 GridBagLayout 中定制组件布局:

  1. 在 GridBagLayout 中选择要定制的组件并单击定制布局 “定制布局”工具栏按钮 工具栏按钮
    提示: 选择多个组件以便同时在多个组件上设置相同的锚点、填充和插入约束。
    “定制布局”窗口将在 GridBagLayout 上显示所选组件的锚点位置、插入、填充、跨度、间隙和权重值。 如果选择了多个组件且所有的组件都具有相同的值,那么锚点值和填充值仅显示一个按下的按钮。显示的插入值是为最后选择的组件设置的值。

    “定制布局”窗口

  2. 要调整组件的锚点位置,请单击以下某个罗盘按钮:
    • 锚点西北 - 将组件放置在网格单元的左上角。
    • 锚点北 - 将组件放置在网格单元的顶部中间位置。
    • 锚点东北 - 将组件放置在网格单元的右上角。
    • 锚点西 - 将组件放置在网格单元的左边中间位置。
    • 锚点中心 - 将组件放置在网格单元的中心位置。
    • 锚点东 - 将组件放置在网格单元的右边中间位置。
    • 锚点西南 - 将组件放置在网格单元的左下角。
    • 锚点南 - 将组件放置在网格单元的底部中间位置。
    • 锚点东南 - 将组件放置在网格单元的右下角。
  3. 要调整网格单元边框与组件之间的间隙,请为以下任何字段输入值(以像素为单位):
    • 顶部 - 设置组件上方的插入或间隙。
    • 左侧 - 设置组件左侧的插入或间隙。
    • 底部 - 设置组件下方的插入或间隙。
    • 右侧 - 设置组件右侧的插入或间隙。
  4. 要调整组件填充网格单元的范围,请单击以下一个或两个填充按钮:
    • 水平填充 - 指定组件占据网格单元的整个宽度。
    • 垂直填充 - 指定组件占据网格单元的整个高度。
  5. 要指定组件跨多少个单元,请输入宽度高度值:
    • 宽度 - 指定组件占据的列数(X 轴)。
    • 高度 - 指定组件占据的行数(Y 轴)。
  6. 要指定组件的内部间隙,请输入以下字段的值(以像素为单位):
    • X -
    • Y -
  7. 要指定如何跨行或列分布额外空间,请为 XY 字段输入值(与为其他组件指定的权重相关的相对数值)。

    GridBagLayout 管理器会分别将行和列中所有组件的列和行的权重计算为最大 weightx 和 weighty。如果生成的布局小于需要填充的区域,那么布局中的额外空间将按照指定的权重,按比例分布给行和列。权重为零的单元不会获取额外空间。

    例如,如果第 1 行和第 1 列交叉处的组件的权重 X 值为 3,而第 1 行和第 2 列交叉处的组件的权重 X 值为 1,那么第 1 行的权重 X 值合计为 4,在分布额外空间时,第 1 列将获取其中的 75%。

    • X - 指定在列之间分布额外空间时的权重。
    • Y - 指定在行之间分布额外空间时的权重。

反馈