JTable y F2 Key
Tengo una barra de menús, con eventos asociados a un inputMap. Todos funcionan correctamente, menos la acción asociada a la tecla F2, que cuando el foco se queda en una JTable, esta se "come" dicha pulsación, y no llega a ejecutarse mi acción. ¿Cómo puedo evitar que la tabla consuma la pulsación de F2 y ésta llegue a dónde tiene que llegar?
Yo tengo una tabla que extiende de JTable, y lo he resuelto sobreescribiendo el método processKeyBinding de la forma:
if (isFocusOwner() && pressed
&& e.getKeyCode() == KeyEvent.VK_F2 && e.getModifiers() == 0 // No se pulsa ALT, SHIFT ni CTRL
&& condition == WHEN_FOCUSED
&& !this.getModel().isCellEditable(this.getSelectedRow(), this.getSelectedColumn()))
{
// Acción asociada a F2
return true;
}
else
return super.processKeyBinding(ks, e, condition, pressed);
Espero que esto te sirva.
if (isFocusOwner() && pressed
&& e.getKeyCode() == KeyEvent.VK_F2 && e.getModifiers() == 0 // No se pulsa ALT, SHIFT ni CTRL
&& condition == WHEN_FOCUSED
&& !this.getModel().isCellEditable(this.getSelectedRow(), this.getSelectedColumn()))
{
// Acción asociada a F2
return true;
}
else
return super.processKeyBinding(ks, e, condition, pressed);
Espero que esto te sirva.