static Runnable buttonActionWithCloseablePre(Runnable r, IF1 pre) { ret -> { pcall { JButton button = heldInstance(JButton); thread { var closeable = pre?.get(button); pcallF(r); close(closeable); } }}; }