Programación en Java/Interfaz Gráfica

Java es un lenguaje multidisciplinar, por lo que no es de extrañar que se puedan crear aplicaciones gráficas[1] bajo su sintaxis. Esto permitirá al usuario interactuar con distintos elementos como botones, imágenes, textos que serán proyectados por el programa ejecutado.

Para hacer uso de estas funciones del lenguaje, será preciso importar y trabajar, principalmente, con las librerías Swing y AWT. Para añadirlas, tendremos que escribir al principio de nuestro programa las siguientes directrices.

Demostración de cómo se deberían de importar las librerías javax.swing y java.awt

Una vez ya importadas las librerías, vamos a crear nuestra primer frame o marco[2]. Para ello, deberemos crear una clase que herede de JFrame, ya predefinida en la API de Java. Cabe tener cuenta que a la hora de crear un frame, por defecto ocupará un tamaño de 0x0 píxeles, será invisible y no tendrá definida, por parte del programador, una acción al tratar de cerrar la ventana. Para solucionar estos problemas, deberemos de emplear unos cuantos métodos heredados de JFrame.

Demostración de la creación de un marco simple en Java.

En este ejemplo, setSize(400, 400) establece un tamaño de 400x400 píxeles al frame, al crear una instancia del objeto Frame_Wikipedia. setVisible(true), permite que el frame sea visible por el usuario.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) , en cambio, hará que el marco se cierre al pinchar sobre el botón de "cerrar pestaña". Al ejecutar el código, debería de devolvernos una simple ventana, en la esquina superior izquierda, como la de la imagen.

Vista de la creación, por defecto, de un marco en Java.

Una vez ya sabemos cómo crear nuestros propios frames, es seguro que querremos mejorarlos un poco para que tengan títulos e iconos más atractivos, al igual que querremos que las ventanas que generemos estén, por defecto, en determinadas posiciones. Para lograr todo eso, haremos un pequeño listado de métodos que la API nos facilita para lograr nuestros objetivos.

En caso de querer cambiar el título de nuestro marco, tendremos que recurrir al método setTitle(String s), al cual le tendremos que pasar el título, en forma de String. Para cambiar la ubicación por defecto, dispondremos de los métodos setLocation(int x, int y) y setBounds(int x, int y, int ancho, int alto). El primero de ellos, exclusivamente, recibirá por parámetros los píxeles sobre los que descansará la esquina superior izquierda del frame(el punto 0,0 corresponde con la esquina superior izquierda, de la pantalla de nuestro monitor); mientras que, el segundo, también nos permitirá modificar el tamaño de la ventana con dos parámetros añadidos. Como no todas las pantallas poseen la misma resolución, es recomendable emplear el objeto Toolkit de la API.

Demostración de como crear una instancia de la clase Toolkit en Java.

Para crear una instancia del mismo, simplemente habrá que llamar al método estático de la imagen.

Una vez tengamos a nuestra disposición el objeto, podremos almacenar las dimensiones de la pantalla sobre la que estamos trabajando. Para ello, deberemos de llamar al método getScreenSize(), el cual nos devolverá una variable de tipo Dimension, la cual deberemos de almacenar en una variable.

De ahora en adelante, sólo tendremos que coger los valores de la altura y el ancho, siendo ambos, atributos de la clase. A continuación, crearemos un marco centrado con los siguientes comandos.

El siguiente código permite crear un frame completamente centrado en Java, a la hora de generarlo.

En caso de queramos añadir un icono a nuestro programa, deberemos meter la imágen(sólo válida en .jpg, .png y .gif) en el proyecto, almacenarla en una variable de tipo image con el método getImage(String filename),

Código necesario para crear un marco/frame centrado, con icono y título propios.

al que le pasaremos por parámetro la

Resultado final de nuestro código.

ruta de nuestro archivo, a modo de String, desde el inicio del proyecto(antes incluso de la carpeta src), y quedará llamar al método setIconImage(Image image)

para pasarle la imagen. Una vez ejecutemos nuestro código, debería quedar algo parecido a lo de la imagen.

Con esto estaría, más o menos, concluída la creación y modificación de frames, sin embargo Java aún ofrece múltitud de funcionalidades, las cuales exploraremos más adelante: desde la creación de figuras, hasta la escritura en nuestros marcos.

  1. https://es.wikipedia.org/wiki/Interfaz_gráfica_de_usuario
  2. https://en.wikipedia.org/wiki/Frame_(GUI)