static LL showForm_makeComponents(final bool internalFrame, O... _parts) { new LL l; L parts = asList(_parts); JButton submitButton = null; for (int i = 0; i < l(parts); i++) { final O o = parts.get(i), next = get(parts, i+1); if (o instanceof S && next instanceof Component) setComponentID((Component) next, (S) o); if (o instanceof Component || o instanceof S || next instanceof Component) { // smartAdd accepts strings l.add(mapLL wrapForSmartAdd( o == null ? new JPanel : o instanceof S ? humanizeFormLabel((S) o) : o, next)); if (next instanceof JButton && submitButton == null) submitButton = (JButton) next; i++; } else if (isRunnable(o)) l.add(mapLL wrapForSmartAdd(null, submitButton = jbutton(showFormSubmitButtonName(), r { O result = call(o); if (neq(Bool.FALSE, result)) disposeFrame(heldInstance(JButton)); }))); else print("showForm: Unknown element type: " + getClassName(o)); } if (submitButton != null) { final JButton _submitButton = submitButton; onEnterInAllTextFields(concatLists(l), r { clickButton(_submitButton) }); } // massage labels for (L row : l) { JComponent left = first(row); if (left instanceof JLabel) makeBold((JLabel) left).setVerticalAlignment(JLabel.TOP); } ret l; }