Tengo un elemento de menú, "rename", para el cual F2 está configurado como acelerador. De hecho, cuando se muestra el menú hay una pequeña indicación "F2" al lado de "cambiar el nombre".Swing: configuración de una tecla de función (F2) como acelerador
Lamentablemente, esto no funciona. Este acelerador no desencadena ninguna respuesta. Cuando cambio el acelerador a CTRL + F2, funciona.
Parece que debería usar un InpoutMpa/ActionMap. El problema es que quiero que esto funcione en todas partes en la aplicación, así que estoy tratando de asociarlo con el JFrame de nivel superior. Pero, JFrame no tiene un método getInputMap().
Perdido.
[Agregado]
ks = KeyStroke.getKeyStroke(KeyEvent.VK_F2, 0);
JMenuItem mi = new JMenuItem("Rename");
mi.setAccelerator(ks);
mi.addActionListener(action);
Favor muestra la codificación se utiliza para establecer el acelerador! –
¿Podría ser que su OS/administrador de ventana "consuma" la pulsación de tecla para que nunca llegue a su aplicación Swing (por ejemplo, porque F2 está asignado a algo especial, y Ctrl-F2 no lo está)? – netzwerg