Solucion:Ejercicio de java swing, listas/tablas

La clase GrabarDatos se resolvió anteriormente, por lo que solo revisamos la clase PantallaPeticion

En esta ocasión, hemos hecho que la clase herede de JFrame e implemente ActionListener, por lo que no será necesario crear un JFrame, porque ella lo es:

Definición de campos y constantes

Constructor

La clase configura la pantalla, y el resto lo hace atendiendo a eventos

ConfigurarVentana

Recordad, la clase es JFrame, por lo que utilizamos métodos heredados para poner título (42), conseguir su contenedor (43), configurar botón de salida (44), establecer tamaño y auto centrar la pantalla

En 46 y 47, establecemos el layout como SpringLayout, para permitir un control preciso de posicionamiento

De la 49 a la 60, vamos creando componentes, configurándolos, y a los dos botones, les suscribimos como Listener esta misma clase (hemos implementado ActionListener)

De la 71 a la 76, Añadimos todos los componentes y de la 79 a la 88, damos las coordenadas de cada uno. No siempre utilizo las paredes del contenedor; es muy útil relacionar un componente con otro próximo.

 

Tratamiento de eventos

Cada vez que alguien pulse un botón, se llamara a este método, ya que hemos registrado esta clase como Listener.

Lo primero que necesitamos hacer, es saber que botón se ha pulsado. En la 98 conseguimos el botón pulsado (source del evento) y obtenemos el nombre que asignamos al crearlo.

Si se trata del botón de enviar, se llama al método addToRow, que filtra el dato y si es correcto nos lo añade al JTable, luego, forzamos un refresco de la JTable (102) y borramos el contenido del cuadro de texto (103)

Haya habido error o no, posicionamos el foco encima del cuadro de texto para que se corrija, si ha habido error, o para que se entre otro (estará en blanco) si ha ido bien.

Si se trata del botón de grabar, obtiene los datos de JTable (108) y los envía al método grabar (109), al finalizar, cierra el programa

addToRow

Extrae el texto entrado de la JTextArea (119), y si la longitud es correcta, crea un array de dos elementos, le pone el contador en uno, y el texto recuperado en el otro y lo añade a JTable, a través de su modelo. Si la longitud está mal, presenta un mensaje (127) y vuelve por falso

leerDatos(JTable)

Primero comprueba que le hayan pasado un objeto, y luego consigue el número de filas (142) y columnas (143)

Inicializa un array de salida con las longitudes encontradas (144)

De 145 a 149 es un doble bucle for para recorrer todas las filas y todas las columnas, e irlas guardando en el array

Luego ya solo queda devolverlo.

 

grabar()

Este método recibe el array con todo el contenido del JTable

Crea la instancia de GrabarDatos (159)

Llama al método prepara (160) para que GrabarDatos solicite el fichero, y lo abra. Si vuelve por true, recorre todo el array grabando el contenido de la columna 1 que es donde está el nombre del usuario

El método que crea, es el main

Instancia la pantalla y la hace visible.

Acerca de Miguel Garcia

Programador, Desarrollador web, Formador en distintas areas de informatica y director de equipos multidisciplinares.
Esta entrada fue publicada en Formacion, Java y etiquetada . Guarda el enlace permanente.

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.