static AutoCloseable tempOnKeyPressed(final int keyCode, final Runnable r, final JComponent a) { if (a == null) null; final KeyAdapter listener = new { @Override public void keyPressed(KeyEvent e) { ifdef tempOnKeyPressed_debug print("key code: " + e.getKeyCode()); endifdef if (simplifyKeyCode(e.getKeyCode()) == keyCode && e.getModifiers() == 0) pcallF(r); } }; swing { a.addKeyListener(listener); } ifdef tempOnKeyPressed_debug print("key listener installed"); endifdef ret autoCloseable { swing { a.removeKeyListener(listener); } ifdef tempOnKeyPressed_debug print("key listener removed"); endifdef }; }