Java nos muestra una imagen

Buenas tardes:

Por fin he conseguido que Java sea capaz de mostrarnos una imagen. La primera dificultad que he encontrado es que pensaba que iba a ser más sencillo, que existiría algún objeto mágico al que le dijeras la ruta de la imagen a cargar y un método show que se encargara de mostrar la imagen por pantalla. Pero esto no es así.

Somos nosotros los que tenemos que ocuparnos de crear la ventana, y dentro de ella hemos de crear un objeto de tipo Component (bueno, realmente uno que herede de Component) que será nuestra imagen.

En este nuevo objeto que hereda de Component (que llamaremos Component de ahora en adelante) tenemos que redefinir obligatoriamente un método, el método paint, que será el que se encargue de dibujarlo (dado que cuando se pinta la ventana, se llama individualmente a los métodos paint de todos los objetos Component).

Además, en mi caso también he redefinido otro método, el método getPreferredSize, que se encarga de devolver el tamaño preferido del objeto Component. Esto lo he hecho porque como tenemos que construir la ventana desde cero, hemos de indicarle el tamaño de la misma. Esto se puede hacer de forma explícita, indicándole ancho y alto mediante el método setSize o bien de forma implícita mediante el método pack, que se encarga de ajustar el tamaño de la ventana para que se adapte a los objetos Component que tenga dentro, conociendo el tamaño preferido del objeto Component mediante el método getPreferredSize.

Este programa lo he desarrollado bajo Vim, pero posteriormente he creado un proyecto en Eclipse cargando mis archivos fuente y ha funcionado sin ningún problema, con la salvedad de que la imagen a cargar debe de ir en la raíz del proyecto, porque si guardas la imagen en el directorio src o bin del proyecto, pese a que se ejecute el programa ya compilado en bin, hay que indicarle la ruta de la imagen completa, por ejemplo “bin/imagen.jpg”, mientras que si se encuentra la imagen en la raíz del proyecto es suficiente con llamarla mediante “imagen.jpg”. Esto imagino que será debido a que Eclipse ejecuta los programas de Java desde la raíz del proyecto, es decir, mediante el comando “java bin/programa”, por lo tanto los recursos se cargan a partir de la raíz del proyecto. Si se ejecutasen mediante “java programa” los recursos se cargarían a partir del directorio bin.

La próxima estación será reducir el tamaño de la imagen para luego devolverla al tamaño original, obteniendo bloques grandes de colores. Algo que comunmente se denomina pixelar la imagen.

Anuncios

~ por Alvaro en octubre 28, 2009.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

 
A %d blogueros les gusta esto: