A logo showing the text blog.marcnuri.com
English
Inicio»Java»Desactivar evento tecla Enter en JTable

Entradas Recientes

  • Fabric8 Kubernetes Client 6.5.0 está disponible!
  • Fabric8 Kubernetes Client 6.4.1 está disponible!
  • Fabric8 Kubernetes Client 6.3.1 está disponible!
  • Eclipse JKube 1.10 está disponible!
  • Fabric8 Kubernetes Client 6.2.0 está disponible!

Categorías

  • Antiguo
  • Front-end
  • Herramientas
  • Java
  • JavaScript
  • Operaciones
  • Proyectos personales

Archivos

  • marzo 2023
  • enero 2023
  • diciembre 2022
  • noviembre 2022
  • octubre 2022
  • agosto 2022
  • julio 2022
  • mayo 2022
  • febrero 2022
  • enero 2022
  • diciembre 2021
  • noviembre 2021
  • octubre 2021
  • septiembre 2021
  • agosto 2021
  • julio 2021
  • diciembre 2020
  • octubre 2020
  • agosto 2020
  • mayo 2020
  • marzo 2020
  • noviembre 2019
  • octubre 2019
  • julio 2019
  • diciembre 2018
  • agosto 2018
  • julio 2018
  • junio 2018
  • marzo 2018
  • febrero 2018
  • noviembre 2017
  • octubre 2017
  • agosto 2017
  • julio 2017
  • julio 2016
  • enero 2016
  • diciembre 2015
  • noviembre 2015
  • marzo 2007

Desactivar evento tecla Enter en JTable

2007-03-18 en Java / Antiguo etiquetado Java / JTable / Antiguo / Swing por Marc Nuri | Última actualización: 2021-01-30
English version

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:

1JTable jMyTable = new JTable();
2jMyTable.addKeyListener(new java.awt.event.KeyAdapter() {
3     public void keyPressed(java.awt.event.KeyEvent evt) {
4         jMyTableKeyPressed(evt);
5     }
6 });
7 private void jMyTableKeyPressed(java.awt.event.KeyEvent evt) {
8     if(evt.getKeyCode() == evt.VK_ENTER){
9         evt.consume();
10     }
11 }
12};

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.

Twitter iconFacebook iconLinkedIn iconPinterest iconEmail icon

Navegador de artículos

← Ejecutar Apache Tomcat y Apache HTTPD en el puerto 80 simultaneamente
© 2007 - 2023 Marc Nuri