GridBagLayout 对齐方式

GridBagLayout alignment

我想把这些按钮放在上面一点,但我不知道怎么做。这是我到目前为止得到的:http://imgur.com/XBWFMzA。我真的需要一些关于这个 GridBagConstraints 的帮助,因为我真的不明白,即使有教程。一件事是 weightx/weighty.. 无论它具有什么值 (0.1-1),它都具有相同的间距。第二件事是锚点,即使我将锚点设置为 LINE_START 他们仍然在框架的中间。最后一件事,gridx/gridy 将这些设置为 0 并不意味着第一个位置在左上角?以及如何修改大小(列宽)?我试过 c.gridwidth = 3,但没有。

    setLayout(new GridBagLayout());
    GridBagConstraints c = new GridBagConstraints();
    JButton buton1 = new JButton("Buton1");
    JButton buton2 = new JButton("Buton2");
    JButton buton3 = new JButton("Buton3");
    c.weightx = 1;
    c.gridx = 0;
    c.gridy = 0;
    add(buton1, c);
    c.gridx = 1;
    add(buton2, c);
    c.gridx = 2;
    add(buton3, c);
  1. 权重x。如果您设置权重,请将水平填充添加到同一组件。 weigth 定义如何在组件之间分配额外的像素。 想象一下水平流动。您有 3 个按钮,每个按钮的首选宽度为 100 像素,但您的容器有 500 像素。 500-300像素必须分配的比例是按钮权重。

如果您设置权重 [1,0,0],所有 200 个额外的像素都会添加到按钮 1。

如果设置权重 [2,1,1],按钮 1 将额外添加 100 个像素,按钮 2 和按钮 3 将额外添加 50 个像素。

当然,如果他们有填充水平或两者

  1. 主播。添加例如NORTHWEST 将内容放在 left/top 角。

如果您定义水平填充(和 x 权重),按钮会尝试填充所有水平 space。

如果您定义垂直填充(和 y 权重),按钮会尝试填充所有垂直 space。