Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Java Swing MigLayout, centering two elements inside a spanned row

I'm working on a MigLayout form with 3 columns and 4 rows, like this:

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

Now my goal is to have it look like this:

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

I want the buttons on the last row centered, so I assumed that it first requires that I span the 3 columns of the 4th row into one with the "span 3, center" component constraint on the button.

This works nicely with just one button, but I'm having problems figuring out how to add the second button, while keeping both two buttons centered on the same row at the same time. If i add same constraints on the second button it appears perfectly centered below the first button on the next row.

like image 415
Fuu Avatar asked Apr 09 '10 16:04

Fuu


2 Answers

The solution is to span and split at the same time: the split defines the number of components that should live in the spanned cell:

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

Aside: a span without count defaults to a high number that it effectly means "all"

like image 77
kleopatra Avatar answered Sep 26 '22 00:09

kleopatra


It's not ideal, but you could add the two buttons to a new JPanel, and then nest that JPanel inside your existing layout with the "span 3, center"

I'm struggling to think of another way.

like image 39
colinjwebb Avatar answered Sep 24 '22 00:09

colinjwebb