static int vstackWithSpacing_default = 10; static JPanel vstackWithSpacing(fL parts, final int spacing) { ret swing(func -> JPanel { JPanel panel = new JPanel(new GridBagLayout); new GridBagConstraints gbc; gbc.weightx = 1; gbc.fill = GridBagConstraints.HORIZONTAL; gbc.gridwidth = GridBagConstraints.REMAINDER; gbc.insets = new Insets(spacing/2, 0, spacing/2, 0); // well... smartAddWithLayout(panel, gbc, toObjectArray(parts)); //gbc = (GridBagConstraints) gbc.clone(); //gbc.fill = GridBagConstraints.BOTH; gbc.weighty = 1; gbc.insets = new Insets(0, 0, 0, 0); panel.add(jrigid()), gbc); ret panel; }); } static JPanel vstackWithSpacing(Component... parts) { ret vstackWithSpacing(asList(parts), vstackWithSpacing_default); }