please include function infoMessage. static JWindow infoBox_centeredText(S text) { ret infoBox_centeredText(text, infoMessage_defaultTime); } static JWindow infoBox_centeredText(final S text, final double seconds) { print(text); ret infoMessage_noprint(text, seconds); } static JWindow infoBox_centeredText_noprint(S text) { ret infoBox_centeredText_noprint(text, infoMessage_defaultTime); } static JWindow infoBox_centeredText_noprint(final S text, final double seconds) { if (empty(text)) null; logQuotedWithDate(infoBoxesLogFile(), text); if (isHeadless()) null; ret (JWindow) swingAndWait(func { JWindow window = makeWindow(infoBox_centeredText_makePanel(text)); window.setSize(300, 150); moveToTopRightCorner(window); if (infoMessage_alwaysOnTop) window.setAlwaysOnTop(true); window.setVisible(true); disposeWindowAfter(iround(seconds*1000), window); ret window; }); } static JPanel infoBox_centeredText_makePanel(S text) { final JTextPane ta = jcenteredtextpane(text); onClick(ta, r { disposeWindow(ta) }); int size = 14; if (l(text) <= 50) size *= 2; else if (l(text) < 100) size = iround(size*1.5); ta.setFont(typeWriterFont(size)); JScrollPane sp = jscroll(ta); ret withMargin(sp); }