4.1 INTRODUCCIÓN A LAS APLICACIONES GRÁFICAS

 

En esta parte nos vamos a adentrar en las interfaces de usuario, es decir, las aplicaciones donde podemos interactuar con una vista gráfica de una ventana similar a lo que ya hemos visto con JOptionPane. Estas ventanas gráficas o interfaces se encuentran dentro del paquete Swing.

Con Java 1.0 teníamos el paquete AWT que era el encargado de aplicar interacción gráfica a las aplicaciones, las clases que estaban en este paquete que permitían crear ventanas, menús, botones, etc., lo que hacían era delegar la creación y el comportamiento de esas ventanas, menús, botones… al SO huésped, es decir, al sistema operativo donde se estuviera ejecutando la aplicación, para aplicaciones sencillas funcionaba muy bien, dependiendo del SO las ventanas tienen una vista gráfica diferente, al igual que los menús y el comportamiento de las mismas. Si creábamos una aplicación y lo ejecutábamos en Windows, al ejecutarlo posteriormente en Linux o en Macintosh la ventana tomaba forma del SO del cual se estuviera ejecutando, en cambio, los botones, los menús tenían un comportamiento diferente, por lo que era un problema para aplicaciones complejas.

Por lo que apareció el paquete Swing en la versión Java 1.2 en los cuales los elementos de la interfaz se pintan sobre una ventana, de forma que las aplicaciones se ejecutaban de forma correcta en cualquier SO permitiendo que las ventanas, botones, menús tuvieran el comportamiento propio del SO.

La estructura de esta clase es la siguiente:



El paquete javax.swing es un paquete extendido una de sus muchas clases es JFrame que se utiliza para crear marcos o ventanas que hereda de la clase Frame del paquete java.awt.

Los marcos también son denominados frames y tienen una serie de características:

·         Nacen invisibles. Se necesita el método setVisible para hacerlos visibles.

·         Nacen con un tamaño inútil. Se necesita el método setSize para darles tamaño

·         Conviene decir qué debe hacer el programa si se cierra un frame.

Para ver todo esto vamos a abrir Eclipse nos creamos un nuevo Proyecto al que vamos a llamar AplicacionesSwing y dentro de este proyecto un paquete al que vamos a llamar swing y es aquí donde se van a crear todas las prácticas que realicemos en este bloque.



Vamos a crear un marco que también se le denomina frame o ventana, para ello nos creamos una clase con el método main e importamos el paquete Swing:

package swing;

 

import javax.swing.*;

 

public class CreandoMarcos {

 

      public static void main(String[] args) {

           

 

      }

 

}

A continuación nos creamos otra clase a la que llamamos miMarco que va a heredar de JFrame, esta clase lo que hace es generar ventanas, se recomienda ir a la API de Java para conocer más acerca de esta clase. Creamos la clase:

package swing;

 

import javax.swing.*;

 

public class CreandoMarcos {

 

      public static void main(String[] args) {

           

 

      }

     

      class miMarco extends JFrame {

           

           

      }

 

}

Al heredar de la clase JFrame podremos utilizar todos los métodos de esta clase dentro de la clase miMarco. Creamos el constructor y dentro de él vamos a establecer el tamaño de la ventana. El método que se va a utilizar para establecer el tamaño es setSize, tiene dos parámetros, x e y, el ancho y alto de la ventana.

class miMarco extends JFrame {

           

            public miMarco() {

                 

                  setSize(500, 300);

            }

           

           

      }

En el método principal main vamos a instanciar la clase miMarco:

miMarco marco1 = new miMarco();

Cuando ejecutemos la aplicación y la ventana sea visible utilizamos el método setVisible pasándole como parámetro un booleano, true:

marco1.setVisible(true);

Cuando se ejecute la aplicación y la ventana se muestre, una vez que hemos cerrado la ventana si queremos que finalice la ejecución del mismo utilizamos otro método setDefaultCloseOperation que hemos de pasarle una constante de clase. Este método tiene varias constantes de clase para saber más de ellas se recomienda ir a la API de Java, en este caso vamos a utilizar la constante de clase EXIT_ON_CLOSE que lo que va a hacer es una vez que cerremos la ventana la aplicación finalice.

marco1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

Si ejecutamos la aplicación se muestra una ventana o un marco:



Mientras esta la ventana abierta fijaros en la parte inferior de Eclipse justo donde está la consola hay un cuadrado en rojo que significa que esta la aplicación ejecutándose:



Si cerramos la ventana vemos que este cuadrado en rojo se deshabilita:



Si no hubiéramos indicado en el archivo mediante el método setDefaultCloseOperation que finalizará la ejecución al cerrar la ventana la aplicación seguiría ejecutándose. Vamos a comentar la siguiente línea de código:

//marco1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

Si ejecutamos de nuevo el archivo nos muestra la ventana y la aplicación está en ejecución:



Si cerramos la ventana la aplicación sigue en ejecución:



Tenemos que pulsar el cuadrado rojo para finalizar la aplicación. Esta es la utilidad de utilizar el método setDefaultCloseOperation con la constante de clase EXIT_ON_CLOSE.


3.4 CLASES INTERNAS LOCALES << >> 4.2 COLOCANDO EL MARCO



No hay comentarios:

Publicar un comentario