Curso De Java: Cómo Cargar Una Imagen Y/O Foto En Un Jlabel De Un Formulario, Utilizando Jfilechooser?
Wednesday, July 15, 2015
Cuando creamos un formulario, en especial aquellos donde recolectamos información de contactos (personas), se hace necesario el poder cargar una imagen y/o foto de los mismos; lo que facilitará su identificación.
En esta parte del curso de JAVA, veremos que para llevar a cabo lo anterior procederemos a utilizar un importante componente de JAVA, conocido como JFileChooser, mediante el cual podremos buscar archivos en nuestro PC y así cargarlos a nuestro software; en este caso archivos de imágenes (.jpg, .png, etc...) y mostrarlos en un label.
Explicación por VideoTutorial:
Explicación por Foto-Tutorial:
*Procederemos a agregar a nuestro formulario principal "Formulario1", un JLabel y un JButton, y procedemos a personalizarlos, asignándoles también un nombre a cada uno; en este caso nuestro label se llamará “lblFoto”, y nuestro botón “btnCargarfoto”:
*Luego crearemos un nuevo formulario (JFrame), y lo llamaremos “CargarFoto”:
*Agregaremos un JFileChooser al formulario que hemos creado, y lo llamaremos jfchCargarfoto:
*Ahora haremos que el JFileChooser pueda ser accedido y/o usado desde otra Clase, para esto debemos darle la propiedad de ser público y estático; para ello daremos clic derecho sobre el elemento de JAVA (JFileChooser) y escogeremos la opción “Customize Code”, seguidamente nos saldrá una ventana en la cual nos dirigiremos a la lista desplegable “Access” ubicada en la parte inferior de dicha ventana y escogeremos la opción “public” y activaremos la casilla “static”, por último damos clic en el botón “OK”:
*Nos dirigimos nuevamente a nuestro formulario "Formulario1", y damos doble clic sobre el botón que agregamos “Cargar Foto”, e inmediatamente entraremos en el método de dicho botón, procedemos a borrar el comentario que se encuentra por defecto:
*Antes de comenzar a redactar líneas de código dentro del método del botón, daremos clic afuera de dicho método, más exactamente arriba y crearemos una variable de tipo File:
*Nos saldrá un error, lo que haremos será importar la clase “java.io.File”:
*Ahora nos dirigimos al método del botón, y colocamos el siguiente código:
int resultado;
CargarFoto ventana = new CargarFoto();
FileNameExtensionFilter filtro = new FileNameExtensionFilter("JPG y PNG","jpg","png");
ventana.jfchCargarfoto.setFileFilter(filtro);
resultado= ventana.jfchCargarfoto.showOpenDialog(null);
if (JFileChooser.APPROVE_OPTION == resultado){
fichero = ventana.jfchCargarfoto.getSelectedFile();
try{
ImageIcon icon = new ImageIcon(fichero.toString());
Icon icono = new ImageIcon(icon.getImage().getScaledInstance(lblFoto.getWidth(), lblFoto.getHeight(), Image.SCALE_DEFAULT));
lblFoto.setText(null);
lblFoto.setIcon( icono );
}catch(Exception ex){
JOptionPane.showMessageDialog(null, "Error abriendo la imagen "+ ex);
}
}
*Lo que hacemos en el código anterior en aspectos generales, es crear una variable tipo int, luego instanciamos un objeto de la clase CargarFoto, proseguimos a crear un filtro para determinar el tipo de archivo que podemos abrir, después aplicamos el filtro al JFileChooser.
Luego lo que se hace es mostrar al usuario, el formulario (JFileChooser) donde podrá elegir por ejemplo la foto del contacto y dependiendo de lo que haga el usuario; es decir, si carga o no un archivo (si da clic en Abrir o Cancelar), eso devolverá un valor entero el cual guardamos en nuestra variable int que creamos al principio.
Creamos de forma siguiente un condicional en el cual comparamos el valor que devuelve JFileChooser.APPROVE_OPTION (es cuando el usuario selecciona un archivo de su PC y da clic en Abrir), con el valor almacenado en nuestra variable tipo int; en el caso dado de que se cumpla dicha igualdad, procedemos a capturar en nuestra variable tipo File que creamos afuera del método del botón, el archivo que el usuario haya seleccionado.
Creamos un try – catch, y dentro del try lo que hacemos es instanciar un objeto de la clase ImageIcon de Java y le pasamos como parámetro nuestra variable tipo File pero convertida a String, seguidamente redimensionamos la imagen que se ha seleccionado dándole las medidas del Label donde se mostrará, luego lo que hacemos es quitar cualquier texto que haya en el label para que no interfiera con la imagen y/o foto, y por último mostraremos la imagen en el Label del formulario; en el caso dado de que suceda un error al abrir la imagen, se ejecutará lo que hay dentro del catch y se nos mostrará la excepción a través de un cuadro de diálogo.
Luego lo que se hace es mostrar al usuario, el formulario (JFileChooser) donde podrá elegir por ejemplo la foto del contacto y dependiendo de lo que haga el usuario; es decir, si carga o no un archivo (si da clic en Abrir o Cancelar), eso devolverá un valor entero el cual guardamos en nuestra variable int que creamos al principio.
Creamos de forma siguiente un condicional en el cual comparamos el valor que devuelve JFileChooser.APPROVE_OPTION (es cuando el usuario selecciona un archivo de su PC y da clic en Abrir), con el valor almacenado en nuestra variable tipo int; en el caso dado de que se cumpla dicha igualdad, procedemos a capturar en nuestra variable tipo File que creamos afuera del método del botón, el archivo que el usuario haya seleccionado.
Creamos un try – catch, y dentro del try lo que hacemos es instanciar un objeto de la clase ImageIcon de Java y le pasamos como parámetro nuestra variable tipo File pero convertida a String, seguidamente redimensionamos la imagen que se ha seleccionado dándole las medidas del Label donde se mostrará, luego lo que hacemos es quitar cualquier texto que haya en el label para que no interfiera con la imagen y/o foto, y por último mostraremos la imagen en el Label del formulario; en el caso dado de que suceda un error al abrir la imagen, se ejecutará lo que hay dentro del catch y se nos mostrará la excepción a través de un cuadro de diálogo.
Si quieres una explicación más detallada sobre cada línea del código anterior, no dudes en visitar:
Código JAVA: Cargar una imagen en un JLabel de un formulario, utilizando JFileChooser
Código JAVA: Cargar una imagen en un JLabel de un formulario, utilizando JFileChooser
*Ahora sólo queda ejecutar el proyecto y hacer las pruebas, si todo resulta como lo esperamos ya podremos mostrar la foto de nuestro contacto en el formulario:
Para descargar el video junto con el fascículo del presente tema del curso de JAVA, sólo debes dirigirte a nuestra Zona de Descargas, y dar clic sobre el icono "Curso de JAVA Parte 11".
Si deseas ver la Parte 10 del Curso de JAVA, puedes dar clic en el siguiente enlace: Curso de JAVA: Cómo hacer un Login, con usuario y contraseña fijos (sin conexión a Base de datos)?
Para ver todos los temas desarrollados hasta ahora en el Curso de JAVA puedes dirigirte al siguiente enlace:
¿Quieres aprender a realizar aún más cosas y personalizar tus programas hechos en el lenguaje de programación JAVA?, si tu respuesta es "Sí", puedes acceder a todos los tips que hemos estado publicando en este blog, dando clic aquí.
Suscríbete a nuestro blog, vía Email o RSS; además puedes seguirnos a través de nuestras redes sociales como: Facebook, Twitter, YouTube y Google+.
Si te fue de gran ayuda este material, no olvides compartirlo con tus amigos.
Suscríbete a nuestro blog, vía Email o RSS; además puedes seguirnos a través de nuestras redes sociales como: Facebook, Twitter, YouTube y Google+.
Si te fue de gran ayuda este material, no olvides compartirlo con tus amigos.
Si tienes dudas o sugerencias al respecto; puedes dejarnos tus comentarios.
Bendiciones...