static AutoCloseable tempOnKeyTyped(final int keyCode, final Runnable r, final JComponent a) { if (a == null) null; final KeyAdapter listener = new { @Override public void keyTyped(KeyEvent e) { print("keycode=" + e.getKeyCode()); if (e.getKeyCode() == keyCode && e.getModifiers() == 0) pcallF(r); } }; swing { a.addKeyListener(listener); } ret autoCloseable { swing { a.removeKeyListener(listener); } }; }