Cómo cambiar el comportamiento predeterminado de detención de edición en jtable

StackOverflow https://stackoverflow.com/questions/1008757

  •  06-07-2019
  •  | 
  •  

Pregunta

Cuando edita una celda en una tabla j, el valor se hace permanente solo si se cambia el foco o si se presiona enter (por ejemplo, si cambia el valor de la celda de '' abc '' a '' xyz '' y cierra la ventana se pierde la edición). ¿Cómo hago que la edición sea permanente cuando el usuario deja de editar?

Supongo que tenemos que actualizar el valor de la celda a medida que el valor de la celda se está editando, pero no estoy seguro de cómo. ¡Se agradece cualquier ayuda!

Gracias de antemano!

¿Fue útil?

Solución

Instalaría un ActionListener en la celda que guarda el valor de la celda en una variable después de cada pulsación de tecla (suponiendo que la celda tenga el foco). Entonces, pase lo que pase con las ventanas, esta variable seguirá conteniendo lo que haya en la celda. Bastante simple.

Otros consejos

// tell JTable to stop editing and save any changes when the table
// loses focus. This means edits will be saved when clicking on 
// another component, eg: button.
table.putClientProperty("terminateEditOnFocusLost", Boolean.TRUE);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top