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