Java para programadores (9) – Entorno gráfico

Toda aplicación, necesita de una manera u otra interaccionar con el usuario. En esta apartado, veremos cómo trabajar con objetos de pantalla, capturando y presentando información en pantallas con formatos más agradables que la propia consola. Conoceremos también la programación orientada a eventos y los cuadros de dialogo

Sigue leyendo

Publicado en Formacion, Java | Deja un comentario

Ejercicio de java swing, listas/tablas

Clase PantallaPeticion

Necesitamos grabar los nombres de nuestros usuario en un fichero en disco, para ello, prepararemos una pantalla (con JFrame) que solicite el nombre, y con un botón, que al pulsarlo, lo añada a la tabla, junto con un numerador

Si cuando pulsa el botón de “Añadir” el campo de nombre está en blanco, o tiene una longitud menor de 5, se informa del error (JDialog) y se vuelve a pedir

Cuando queramos finalizar, pulsaremos el botón de fin, que nos preguntara el nombre y la ubicación del fichero en donde deseamos guardar la información, Cuando nos lo indiquen, procederemos a realizar la grabación del fichero

 

Para la definición de JTable, será necesario acudir a páginas como https://docs.oracle.com/javase/tutorial/uiswing/components/table.html

Para la grabación del fichero, podemos usar GrabarDatos, escrito en el ejercicio anterior

Solucion

 

 

 

 

 

Publicado en Formacion, Java | Etiquetado , | Deja un comentario

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.

Publicado en Formacion, Java | Etiquetado | Deja un comentario

Ejercicio java swing y ficheros

Preparar una clase GrabarDatos con tres métodos

prepara() – Utiliza JFileChooser para solicitar la ruta y el nombre de fichero a grabar; si lo puede abrir retorna true, si no, false

graba(String str) – Recibe una string y la graba en el fichero abierto.

close() – Cierra el fichero .

Preparar una clase PrGrabar, que presenta una pantalla con un botón

Ejercicio java swing y file

Al pulsarlo, Instancia la clase GrabaPantalla y con ella crea un fichero y le graba dos líneas con cualquier texto

Solucion

Publicado en Formacion, Java | Etiquetado , | Deja un comentario

Solucion Ejercicio java swing y ficheros

Clase GrabarDatos ************************************************

De la 16 a la 18, configuramos JFileChooser, para que empiece ofreciendo el disco C:

En la 19, presentamos la pantalla de dialogo, como esta clase no tiene pantalla, le pasamos null.

En la 20 comprobamos si nos han seleccionado fichero, y si es así, en la línea 22 creamos un FileWriter con la ruta que nos entrega JFileChooser.

Si todo va bien, con el FileWriter, creamos un PrintWriter para tenerlo todo preparado para grabar

El método graba (líneas 33 a 38) se limitan a grabar la string que reciben

El método close (líneas 40 a 48) cierra el dispositivo abierto

 

Clase PrGrabar *************************************************

En las líneas 15 a 18, creamos el JFrame, configuramos el botón de cierre, lo centramos en pantalla y le definimos el tamaño

En la 20, preparamos el botón y le añadimos el ActionListener que se disparara cuando lo pulsen

De la 22 a la 30, indicamos lo que ha de hacer cuando se pulse

  • Instancia la clase GrabarDatos (23)
  • Da la orden de prepara(), por lo que GrabaDatos abrirá el dialogo para preguntar por el nombre del fichero
  • Da dos órdenes de grabación, para grabar las cadenas que queremos (25 y 26)
  • Da la orden de cerrar el fichero (27)
  • Cierra el programa(28)

Las líneas 34 a 39 se encargan de establecer el Layout de la pantalla, añadirle el botón, y hacer visible la pantalla.

Publicado en Formacion, Java | Etiquetado , | Deja un comentario

Ejercicio java swing

La propuesta es realizar una clase en donde instancie la pantalla, a la que añadimos un Botón,  como un objeto, y además implemente los ActionListener necesarios para que cuando se pulse el botón recoger la información de los campos e imprimirlos en la consola.

Esta es la pantalla

Solucion

Publicado en Formacion, Java | Etiquetado , | Deja un comentario

Ejercicio java swing – Solución

Como queremos resolverlo todo en la misma clase, aunque sea la de lanzamiento, implementamos ActionListener, lo que hará que podamos recibir eventos

Durante el Main, instanciamos la clase, y en su constructor dejamos todo el código de creación del Frame

Igual que en el resto de ejemplos, desde la 31 a la 36

  • 31 – creamos la Frame
  • 32 – recogemos su contentPane
  • 33 – configuramos el comportamiento del boton de FIN
  • 34 – forzamos que la pantalla salga centrada
  • 35 –Instanciamos el SpringLayout
  • 36 – Lo asignamos al panel
  • 38 a 41 Construimos el label y el textField de nombre
  • 43 a 46 Construimos el label y el textField de dirección
  • 48 Instanciamos el botón de Enviar
  • 49 registramos nuestra clase para que atienda los eventos que genere este botón
  • 52 a 56 añadimos todos los componentes al panel
  • 58 a 67 indicamos las posiciones x e y para todos los componentes
  • 69 y 70, definimos tamaño de Frame y la hacemos visible

Nos queda por codificar lo que queremos hacer cuando se pulse el botón, y como en este caso no tenemos más eventos, sabemos que cuando llegue al actionPerformed solo puede ser porque hayan pulsado el botón, por lo que no necesitaremos saber de dónde viene, y queda así

En 76 y 77 leemos el contenido del componente para dejarlo en String, y en la 78 lo presentamos en la consola

Publicado en Formacion, Java | Etiquetado , | Deja un comentario

Java para programadores (9.5) – Controles básicos (objetos)

Una vez definido el layout, podemos iniciar la inclusión de los componentes Sigue leyendo

Publicado en Formacion, Java | Etiquetado , , | Deja un comentario

Java para programadores (9.4) – Gestión de eventos en swing

Cuando trabajamos con pantallas, debemos estar preparados para recibir eventos. En Swing, un evento es una acción realizada por un usuario; por ejemplo la pulsación de un botón, o la pulsación de una tecla en el teclado. Sigue leyendo

Publicado en Formacion, Java | Etiquetado , , | Deja un comentario

Java para programadores (9.3) – Los componentes gráficos

Toda ventana la implementaremos con JFrame o con JDialog

Para que una ventana sea funcional deberemos añadir los componentes que necesitemos, y eso lo hemos de hacer en contenedor que incorporan. Sigue leyendo

Publicado en Formacion, Java | Etiquetado , | Deja un comentario