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
- Abrir la aplicación de
la publicación anterior.
- 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.
- 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.
- Ejecuta el programa y
prueba a hacer un filtrado eligiendo un campo para ordenar y observa el
resultado:
- 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:
- 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:
- 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.
- 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.
- 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.
- 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