¿Cuál es la relación entre un JTable
, TableModel
y TableData
? Si solo modifico el TableData
, ¿eso también cambia la visualización de datos en el componente JTable
o tengo que llamar a algún método para sincronizar los dos? He mirado this, pero no me dice explícitamente ni me muestra la relación en términos de actualizacionesRelación entre JTable, TableModel y TableData
Respuesta
Cuando cambia un valor en los datos de TableModel, debe activar este evento. p.ej. cambiando el valor de una celda, llama al fireTableCellUpdated(row, col);
.
Mire this más específicamente.
Supongo que está utilizando la frase "TableData" para referirse solo a los datos que se muestran en la JTable. Para responder a su pregunta, ver actualizaciones automáticas o no depende de su TableModel y de cómo interactúa con sus datos.
Un modelo de tabla debe desencadenar eventos cuando el modelo de datos subyacente ha cambiado, esto a su vez notificará a JTable que se ha producido un cambio y se debe volver a dibujar. Entonces, en términos de una relación, JTable escucha los cambios de eventos en TableModel; TableModel no tiene conocimiento de JTable.
Dependiendo de cómo esté organizado su modelo, los datos debajo podrían cambiar sin que lo sepa el modelo de tabla. En este caso, si tiene un paso directo de TableModel a los datos, los valores en pantalla cambiarán cuando ocurra una repintura de manera natural (cambio de tamaño de la pantalla, movimiento del mouse, etc.), pero si desea forzar el evento, debería obtener el TableModel para notificar a JTable a través de los eventos mencionados anteriormente. En términos de relación, TableModel conoce los datos de la tabla, pero los datos de la tabla no tienen conocimiento del modelo (generalmente). TableModel puede o no estar escuchando en los datos para cambios.
Al configurar TableModel en una JTable, la tabla agrega un observador (TableModelListener) para informarse sobre los cambios en el modelo.
Al cambiar los datos en el modelo, se espera que el modelo notifique a los oyentes registrados activando un TableModelEvent. El evento en sí puede contener información complementaria sobre la granularidad del cambio (ya sea que la estructura haya cambiado significativamente o solo se hayan cambiado algunos datos de celda) para permitir que JTable haga una actualización optimizada de la vista.
- 1. crear TableModel y rellenar jTable dinámicamente
- 2. Conservar la selección de JTable en el cambio de TableModel
- 3. Java: ¿Es posible reemplazar TableModel en una JTable existente?
- 4. Eliminar columna de TableModel en Java
- 5. relación entre log4j y apache.commons.logging
- 6. Relación entre AppDelegate y main.m
- 7. Relación entre GEF y GMF?
- 8. Relación entre C y C++
- 9. Relación entre HttpContext.Request.Cookies y HttpContext.Response.Cookies
- 10. Relación entre sesiones JDBC y Oracle procesa
- 11. Relación entre "cerrar" para PreparedStatement y Connection?
- 12. Relación entre la clase System.Object y Structs
- 13. C# - Relación entre UDPClient y Socket
- 14. ASP.NET MVC: relación entre modelos y MembershipUsers
- 15. Relación entre archivos SVC y proyectos WCF?
- 16. Relación entre el objeto MembershipUser y IPrincipal
- 17. Relación entre HandleBar js y Moustache js
- 18. ¿Existe una relación entre RTTI y excepciones?
- 19. relación entre el flop y la metaestabilidad
- 20. JTable - arrastre y suelte
- 21. ¿Cuál es la relación entre "un" montón y "el" montón?
- 22. ¿Cuál es la relación entre docutils y Sphinx?
- 23. ¿Cuál es la relación entre bitbucket.org y bytebucket.org?
- 24. relación entre las funciones y los comandos de Emacs
- 25. ¿Cuál es la relación entre el campo 'SYSTEM_PROPERTIES_MODE_ENVIRONMENT' y PropertyPlaceHolderConfigurer?
- 26. ¿Qué relación existe entre GDAL, FDO y OGR?
- 27. ¿Cuál es la relación entre entornos y proyectos en virtualenvwrapper?
- 28. ¿Cuál es la relación entre Passenger y Capistrano?
- 29. Relación entre entrada y longitud de texto cifrado en AES
- 30. nginx, ¿cuál es la relación entre worker_connections, keepalive_timeout y $ conexión
fireTableCellUpdated (fila, col) solo se aplica a TableModels que son subclases de AbstractTableModel. –