Tengo una JTable simple, hay dos columnas que importan: cantidad y valor (enteros). Cada vez que el usuario ingresa una nueva fila o actualiza una, cada valor de las filas se debe multiplicar por cantidad, los resultados se suman y la suma del resultado se muestra en un JLabel fuera de JTable. Parece bastante simple. Excepto que no tengo idea de qué evento debería buscar. ¿Algo como "cambio de valor celular"? Cuando hago clic con el botón derecho en JTable en NetBeans no veo ningún evento ni lo reconozco;) De todos modos, antes de encontrar una solución noobish extraña, pensé que podría preguntar aquí cuál es la forma correcta de hacerlo :)¿Cuál es el evento apropiado para los cambios en cualquier celda de JTable?
Respuesta
debe agregar TableModelListener como se describe here.
también, en su oyente vez que haya actualizado el valor de los otros valores de la celda mediante programación tendrá que llamar para que model.fireTableCellUpdated
oscilación sabe acerca de los cambios
Finalmente he conseguido encontrar cómo hacerlo en NetBeans con toda la protección de código, etcétera. Haga clic con el botón derecho en JTable en la Vista de diseño, Propiedades, luego en la pestaña Código, y luego agregue su código en la sección Pre-Adding Code (código evaluado antes de agregar la tabla al contenedor o algo así).
El código exacto que funciona para mí es la siguiente:
table.getModel().addTableModelListener(
new TableModelListener()
{
public void tableChanged(TableModelEvent evt)
{
// here goes your code "on cell update"
}
});
Soy consciente de que Tom, anteriormente, nunca se sugirió llamar getModel() pero soy demasiado nuevo para Java para entender por qué (el cuidado de explicar , por favor ..?) :) y es sólo un ejemplo de todos modos, estoy añadiendo esta respuesta sólo para mostrar cómo hacerlo en NetBeans (pstanton gracias por responder lo que hacer). Porque encontré tanta gente preguntando esto en internet y no hay respuestas reales (aparte de "copie su código protegido del área protegida de NetBeans y luego personalice su tabla).
- 1. Cambiar el color de la celda JTable
- 2. Haga clic en evento en jTable -Java
- 3. Cómo mantener JTable en la celda editada
- 4. JTable: Botones en el Panel personalizado en la Celda
- 5. ¿Cuál es el término técnico apropiado para los caracteres "ascii altos"?
- 6. ¿Cómo encontrar un evento apropiado en Magento?
- 7. Evento de columna movida [finalizada] en JTable
- 8. Buscar y reemplazar: ¿Cuál es el atajo apropiado?
- 9. ¿Cómo puedo determinar qué celda de una JTable se seleccionó?
- 10. Determine qué celda JTable se hace clic
- 11. Cuando es el momento apropiado en rotación para cambiar los parámetros de diseño de un UICollectionView
- 12. ¿Es Zookeeper apropiado para el almacenamiento en caché de objetos?
- 13. ¿Cuándo es apropiado el retroceso recursivo?
- 14. ¿Cómo envolver las líneas en una celda jtable?
- 15. ¿Cuál es el punto de los punteros?
- 16. ¿Cuál es el modismo más apropiado para productor/consumidor en Go?
- 17. ¿Cómo marcar la entrada de la celda JTable como inválida?
- 18. Viendo los cambios de datos del modelo de Magento en el evento antes/después de guardar?
- 19. ¿Es Hashtable apropiado para almacenar activos?
- 20. ¿Cuál es el patrón apropiado en Python para implementar getters perezosos?
- 21. ¿Cuál es el código de estado HTTP más apropiado para devolver si falta un encabezado requerido?
- 22. ¿Es apropiado Amazon S3 para publicar videos?
- 23. eliminando la rejilla jtable (borde de la celda) completamente
- 24. Colocando JToggleButton con JPanel dentro de una celda JTable
- 25. ¿Cuál es un uso apropiado para el control MultiView de ASP.NET?
- 26. Cómo insertar una imagen en la celda JTable
- 27. ¿Cuándo es apropiado usar IoC?
- 28. ¿Puede un Jtable guardar datos cada vez que una celda pierde el foco?
- 29. ¿IllegalStateException es apropiado para un objeto inmutable?
- 30. ¿Para qué tareas es más apropiado F #?
' getModel() 'es el método operativo. De hecho, Dejando a un lado el código de demostración cursi, es mucho mejor tratar con el modelo, luego construir una tabla con él, pero nunca llamar a 'getModel()'. –