domingo, 25 de septiembre de 2016

054.- La Clase JTable - Ordenación Y Cálculos - Java Y NetBeans

ORDENACIÓN Y CÁLCULOS:

Se van a añadir ciertas mejoras al programa que se viene realizando en las últimas entradas de este blog. En este post programaremos ciertas opciones de ordenación así como realizaremos determinados cálculos sobre la tabla Trabajadores.



EJERCICIO GUIADO Nº 1

  1. Abrir la aplicación de la publicación anterior.

  1. Vamos a modificar el cuadro de diálogo de filtrado de forma que no sólo sea capaz de filtrar, sino que también permita que el listado que se ha filtrado aparezca ordenado según un campo.

Para ello, añade lo siguiente al diálogo de filtrado:


El combo cboCamposOrdenacion contendrá los siguientes elementos: (Sin Ordenación), DNI, Nombres, Apellidos, Sueldo, Fecha_Entrada, Placa:

 


Es necesario añadir un ButtonGroup al programa, al que llamaremos grupoOrdenacion. Los botones de opción radioAsc y radioDesc deben pertenecer a dicho grupo.



  1. La idea es la siguiente. Cuando el usuario quiera hacer un filtrado podrá indicar que el listado aparezca ordenado por algún campo, seleccionándolo en el combo de ordenación. También puede indicar la forma de ordenación (ascendente o descendente) a través de los botones de opción.

Al pulsar Aceptar el listado de trabajadores no solo saldrá filtrado, sino que también saldrá ordenado.

Para ello tendremos que realizar modificaciones en el código del botón Aceptar. Añade el siguiente código en el evento actionPerformed del botón Aceptar (justo antes de la ejecución de la consulta):



Estudiemos el código. Lo primero que se hace es extraer el valor seleccionado del combo cboCamposOrdenacion.

Si este combo no contiene el valor “(Sin Ordenación)” significará que se desea realizar una ordenación por el campo seleccionado. Así pues se concatena a la variable sql la cláusula ORDER BY con el campo que se ha seleccionado en el combo.

Luego se añade a la consulta sql la forma de ordenación teniendo en cuenta el botón de opción que esté activado, y según esto, se añade la cadena “ASC” o “DESC” para ordenar ascendentemente o descendentemente.

  1. Ejecuta el programa y prueba a hacer un filtrado eligiendo un campo para ordenar y observa el resultado:



  1. Una ventaja de esto es que se puede mostrar el listado completo de trabajadores ordenado por el campo que se quiera siempre y cuando no se indique ninguna condición:




  1. Ahora vamos a añadir una nueva mejora al programa. La idea es que se visualice junto al JTable de trabajadores los siguientes datos: el número de trabajadores que se muestra y el promedio de los sueldos.

Para ello, añade las siguientes modificaciones en el diseño de la ventana principal:



  1. Ahora programaremos un método que sea capaz de calcular el número de trabajadores y el sueldo promedio a partir del contenido de un ResultSet.

Este método recibirá un ResultSet como parámetro, y lo que hará será analizar el contenido de este ResultSet para calcular y luego mostrar el número de trabajadores y el sueldo promedio.

Accede al código del programa y añade el siguiente método:



Este código básicamente toma el ResultSet pasado como parámetro y lo recorre aumentando en uno la variable nroTrabajadores cada vez que se pasa al siguiente trabajador.
Por otro lado se calcula la suma de los sueldos de los trabajadores del ResultSet.

Una vez terminado el bucle solo hay que dividir la suma de los sueldos entre el número de trabajadores para obtener el sueldo promedio, y estos datos se colocan en las etiquetas correspondientes.


  1. Interesa que cada vez que se muestren todos los trabajadores en el JTable se realicen estos cálculos, así pues debe añadir la siguiente línea en el método mostrarTodosLosTrabajadores:


Esa línea es una llamada al método que acabamos de programar, y hará que después de que se presenten en el JTable todos los trabajadores se rellenen las etiquetas de los cálculos.


  1. También interesa que cuando se realice un filtrado aparezca el número de trabajadores y el sueldo promedio correspondiente al listado que se acaba de filtrar. Para ello debes añadir la siguiente línea al código del botón Aceptar del cuadro de diálogo de filtrado:


De nuevo se hace una llamada al método realizarCalculos justamente después de colocar en la tabla el listado de trabajadores, en este caso una lista filtrada.


  1. Ejecuta el programa y observa como al iniciar el programa ya aparecen en las etiquetas los cálculos (ya que el método constructor llama al método mostrarTodosLosTrabajadores que a su vez llama al método realizarCalculos).

También puedes comprobar como al hacer un filtrado se muestran los cálculos correspondientes al listado filtrado, ya que en el botón Aceptar del dialogo de filtrado se hace una llamada al método realizarCalculos.





CONCLUSIONES:

Todo programa de gestión de datos de una tabla debería tener opciones de ordenación para mostrar los datos de la tabla ordenados como el usuario desee.

La opción de ordenación puede estar situada junto a las opciones de filtrado para permitir de esta manera que los filtrados aparezcan ordenados según le interese al usuario.

Suele ser habitual que al lado del JTable aparezcan ciertos cálculos estadísticos relativos a los registros mostrados en la tabla.

No hay comentarios.:

Publicar un comentario