static void inputText(fS msg, fO action) { inputText(msg, "", action); } // action: voidfunc(S) static void inputText(fS msg, final S defaultText, fO action) { awt { final JTextField tf = jtextfield(defaultText); S title = joinStrings(" | ", msg, programName()); JComponent form = showFormTitled(title, unnull(msg), tf, r { callF_thread(action, getTextTrim(tf)) }); renameSubmitButton(form, "OK"); vmBus_send('inputtingText, _threadInfo(), msg, tf); } }