srecord noeq ComboBoxAndButton(JComboBox cb, S buttonText, IVF1 onEnter) { JButton btn; Runnable makeAction() { ret -> pcallF(onEnter, getText(cb)); } swappable JComponent wrapButton(JComponent button) { ret button; } JComponent makePanel() { ret centerAndEastWithMargin(cb, wrapButton(btn)); } JComponent get() { Runnable r = makeAction(); onEnter(cb, r); btn = jbutton(buttonText, r); ret makePanel(); } }