static void inputText(fS msg, fO action) { inputText(msg, "", action); } // action: voidfunc(S) static void inputFilePath(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"); } }