Pregunta

Tengo una tabla con una costumbre TableCellEditor (que se extiende a DefaultCellEditor) con un JFormattedTextField como el editor de componentes.

Ahora tengo problema:cuando pulse un botón separado, mientras que la edición.Cuando se pulsa el botón, el editor se queda "abierto y activo", mientras que me gustaría es dejar de edición para que los cambios realizados se estaría disponible para las operaciones causadas por el botón.

Entonces, ¿cómo causa la edición de ser detenido cuando un distinto se pulsa el botón.He intentado setFocusLostBehavior(JFormattedTextField.COMMIT) para el JFormattedTextField pero no parecen tener efecto.

La esperanza de que alguien tiene algunas buenas ideas =)

¿Fue útil?

Solución

Puede intentar

jtable.putClientProperty("terminateEditOnFocusLost", Boolean.TRUE);

Otros consejos

Gracias asalamon74, que funciona bastante bien.

Hay un debate sobre la cosa en Sun Bug Base de datos: Bug 4724980: JTable: Añadir API para controlar lo que ocurre con las ediciones mesa cuando pierde el foco. (también otras entradas de errores se encuentran). El terminateEditOnFocusLost depende de conducta "commit-o cancelar" que se puede ver en las fuentes de Java en la clase JTable $ CellEditorRemover

Y sí, es un poco extraño que no está documentado en las API, etc ...

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top