5

次のように、3列4行のMigLayoutフォームで作業しています。

"wrap 3",
"[15%] 15px [45%] 15px [40%]",
"20 [] 15 [] 15 [grow,fill] 15 []"

今の私の目標は、次のようにすることです。

.------------------------------------.
| 15% |     45%      |     40%       |
|------------------------------------|
|     |              |               |
|------------------------------------|
|     |              |               |
|------------------------------------|
|           button,button            |
`------------------------------------´

"span 3, center"最後の行のボタンを中央に配置したいので、最初に、ボタンのコンポーネント制約を使用して、4行目の3列を1つにスパンする必要があると想定しました。

これは1つのボタンでうまく機能しますが、2つのボタンを同時に同じ行の中央に配置したまま、2番目のボタンを追加する方法を理解するのに問題があります。2番目のボタンに同じ制約を追加すると、次の行の最初のボタンの下の完全な中央に表示されます。

4

3 に答える 3

5

解決策は、スパン分割を同時に行うことです。分割は、スパンされたセルに存在するコンポーネントの数を定義します。

panel.add(firstButton, "span, split 2, center");
panel.add(secondButton);

余談: カウントのないスパンはデフォルトで高い数値になり、事実上「すべて」を意味します

于 2012-11-23T11:36:09.387 に答える
2

理想的ではありませんが、2 つのボタンを新しい JPanel に追加し、その JPanel を「スパン 3、中央」を使用して既存のレイアウト内にネストすることができます。

別の方法を考えるのに苦労しています。

于 2010-04-09T16:33:56.480 に答える
0

次のように、成長するか中央のボタンを押す 2 つのボックスを左右に配置することができます。

pane.setLayout(new MigLayout("fill"));
pane.add(Box.createHorizontalBox(), "push");
pane.add(new JButton("asdf"));
pane.add(new JButton("zxcv"));
pane.add(Box.createHorizontalBox(), "push,wrap");
于 2012-11-23T10:42:17.287 に答える