static int hstackWithSpacing_spacing = 10; // first part can be spacing value static JPanel hstackWithSpacing(O... parts) { parts = flattenArray2(parts); // allow collections in parameters int spacing = hstackWithSpacing_spacing; int i = 0; if (first(parts) instanceof Int) { spacing = toInt(first(parts)); ++i; } JPanel panel = new JPanel(new GridBagLayout); new GridBagConstraints gbc; gbc.weighty = 1; gbc.fill = GridBagConstraints.VERTICAL; gbc.gridheight = GridBagConstraints.REMAINDER; for (; i < l(parts); i++) { if (i != 0) panel.add(javax.swing.Box.createRigidArea(new Dimension(spacing, 0)), gbc); panel.add(wrapForSmartAdd(parts[i]), gbc); } gbc.weightx = 1; panel.add(jrigid(), gbc); ret panel; }