Desactivar evento tecla Enter en JTable
Cuando presionas la tecla Enter
dentro de una JTable, notarás como la selección de la fila pasa a la
siguiente fila de la tabla (a la primera en el caso en que nos encontremos en la última). Puedes cambiar esto
jugando con la política de "traversal keys", pero esto es bastante complicado.
La forma más sencilla de evitar este comportamiento estándar es consumir el evento cuando la
tecla Enter
se presione. Puedes conseguir esto con el siguiente código:
JTable jMyTable = new JTable();
jMyTable.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyPressed(java.awt.event.KeyEvent evt) {
jMyTableKeyPressed(evt);
}
});
private void jMyTableKeyPressed(java.awt.event.KeyEvent evt) {
if(evt.getKeyCode() == evt.VK_ENTER){
evt.consume();
}
}
};
Es muy importante consumir el evento en el evento keyPressed()
y no durante otro de los posibles
KeyEvents. Lo contario implicaría consumir el evento una vez ya se ha propagado, por lo que la selección
continuaría avanzando a la siguiente fila.