//please include function withMargin. static int showForm_defaultGap = 4; static int showForm_gapBetweenColumns = 10; static JPanel showFormTitled(fS title, fO... _parts) { ret swing(func -> JPanel { final new Var frame; JPanel panel = showForm_makePanel(frame, _parts); frame.set(showForm_makeFrame(title, panel)); ret panel; }); } static JPanel showForm_makePanel(final Var frame, O... _parts) { Pair, Runnable> p = showForm_makeComponents(frame, _parts); LL l = p.a; Runnable submit = p.b; int minW = showForm_leftWidth(l); new L out; for (L row : l) out.add(westAndCenter(withRightMargin(showForm_gapBetweenColumns, jMinWidth(minW, first(row))), second(row))); JPanel panel = vstackWithSpacing(out, showForm_defaultGap); ret panel; }