定制 GridBagLayout 中的组件布局

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

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

当从另一个布局管理器切换至 GridBagLayout 时,Visual Editor for Java 将根据每个组件的现有边界来为它们生成约束。使用 GridBagConstraints 而不是空布局的优点是每个组件都是根据其首选大小来调整大小的。因此,如果父窗口的大小发生更改,或者如果首选大小在运行时由于语言字符串不同而发生更改,则布局管理器将对所有组件调整大小并重新定位,从而最大限度地利用可用空间。

要定制 GridBagLayout 中的组件布局:

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

    “定制布局”窗口

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

    GridBagLayout 管理器将计算列和行的权重,来分别作为行和列中所有组件的最大 weightx 和 weighty。如果得到的布局小于它需要填充的区域,则布局中的额外空间将按照指定的权重比例分配到列和行。权重为零的单元格不会得到额外的空间。

    例如,如果第 1 列第 1 行中组件的权重 X 为 3,第 2 列第 1 行中组件的权重 X 为 1,第 1 行中的权重 X 值相加总计得 4,所以在分配额外空间时,第 1 列将得到 75% 的空间。

    • X - 指定额外空间在列之间的分配权重。
    • Y - 指定额外空间在行之间的分配权重。
相关任务
在 GridBagLayout 中添加或移动组件
让组件跨 GridBagLayout 单元格

(C) Copyright IBM Corporation 1999, 2006. All Rights Reserved.