A solution is to define the growing behaviour of the config-column in the column constraints:
frame.setLayout(new MigLayout("insets 10, hidemode 3, debug",
"[][fill, grow][]", ""));
frame.add(getMeasPanel(), "w 500!");
frame.add(getConfigPanel(), "left, grow");
frame.add(getMinimizeButton(), "right, top, wrap");
frame.add(getPlotPanel(), "spanx 3, grow, wrap, push");
There are some quirks (read: behaviour I personally don't fully understand :-) with push cell contraints, so I tend to evade them where possible. Also, my preference would be to define a wrap 3
in the layout constraints.
Update:
Just remembered one of the quirks: the push (actually the implied pushx) in the spanning plot row is the real culprit - its excess space goes into its first column. Thinking about it, that behaviour is not sooo not unreasonable, after all cell contstraints are about ... cells, they don't much care about other cells.
So another solution is to make the plot pushy in y only (the x push being already handled by the config cell in the second column above it)
frame.setLayout(new MigLayout("insets 10, hidemode 3, debug",
// cell constraints are empty in original
"",
""));
// meas should have a fixed size
frame.add(getMeasPanel(), "w 500!");
// the config should get all excess space when growing
frame.add(getConfigPanel(), "left, grow, pushx");
frame.add(getMinimizeButton(), "right, top, wrap");
// remove implicit the pushx
frame.add(getPlotPanel(), "spanx 3, grow, wrap, pushy");
My preference would be the first: do as much config as high up in a hierarchy (of constraints) as possible, makes the ui code much more maintainable than having them scattered over the cells.