1

somボタンが付いたパネルを作っています。 これが今の様子です。

しかし、私はボタンを互いに接触させたい、言い換えれば、垂直方向のギャップをなくしたいのです。ただし、ボタンのサイズは変更しないでください。どうすればこれを行うことができますか?

私のコード:

this.setLayout(new GridBagLayout());
    GridBagConstraints constraints = new GridBagConstraints();

    constraints.fill = GridBagConstraints.HORIZONTAL;
    constraints.gridwidth = 2;
    constraints.weightx = 1D;
    constraints.weighty = 1D;
    constraints.gridx = 0;
    constraints.gridy = 0;
    int row = 0;
    for (MainAction actie : mainActions) {
        constraints.gridy = row;
        row++;
        SelectedActionButton but = new SelectedActionButton(selectedActionModel, actie);
        this.add(but, constraints);

    }
    constraints.gridwidth = 1;
    constraints.weightx = 0.5D;
    row *=2;
    for (AbstractAction actie : objectActions) {
        constraints.gridy = row/2;
        constraints.gridx = row%2;
        row++;
        SelectedObjectButton but = new SelectedObjectButton(selectedObjectModel, actie);
        but.setMargin(new Insets(0, 0, 0, 0));
        this.add(but, constraints);
    }

前もって感謝します

4

1 に答える 1

1

次の行を変更します

constraints.weighty = 1D;

constraints.weighty = 0D;

問題を修正します。

更新:すべてのボタンを北に揃えるには、最後の行に追加のコンポーネントを追加して、使用可能なすべてのスペースを消費します。

constraints.weighty = 1D;
constraints.gridy = row;
this.add(Box.createGlue(), constraints);
于 2011-04-09T08:45:05.800 に答える