The::Beastieux

Sangre de Bestia + Corazón de Pingüino | Un blog acerca de Linux, *BSD, Open Source, Software Libre, Programación …

Código Java – Autoajustar Imágenes en un Contenedor


Este es el Ejemplo #22 del Topic: Programación Gráfica en Java.

Con el siguiente ejemplo aprenderemos a subir imágenes para mostrarlos en nuestros contenedores de java, y no solo eso, si no también como deben ser autoajustados al contenedor en el que se encuentra, de esa manera eliminamos los problemas de escalamiento que suele ocurrir por defecto si no se hace uso de una función que realice este trabajo.

Para este ejemplo contamos con 2 funciones básicas, la primera para presentar la imágen y la otra para autoajustarlo al componente que lo contiene:

...
    private void setImagen()
    {
        lbl.setIcon(ajustarImagen("/home/beastieux/MiImagen.png"));
        lbl.setBorder(BorderFactory.createEmptyBorder(0,0,0,0));
    }
...
...
    private ImageIcon ajustarImagen(String ico)
    {
        ImageIcon tmpIconAux = new ImageIcon(ico);
        //Escalar Imagen
        ImageIcon tmpIcon = new ImageIcon(tmpIconAux.getImage().getScaledInstance(200, 200, Image.SCALE_DEFAULT));
        return tmpIcon;
    }
...

Código de Ejemplo:

package beastieux.gui;

import java.awt.FlowLayout;
import java.awt.Image;
import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;

/**
 *
 * @author beastieux
 */
public class Ejm22_SubirImagen extends JFrame {

    JLabel lbl;

    public Ejm22_SubirImagen()
    {
        lbl = new JLabel();

        this.add(lbl);
        this.setSize(200,200);
        this.setLayout(new FlowLayout());
        this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);

    }

    private void setImagen()
    {
        lbl.setIcon(ajustarImagen("/home/beastieux/MiImagen.png"));
        lbl.setBorder(BorderFactory.createEmptyBorder(0,0,0,0));
    }

    private ImageIcon ajustarImagen(String ico)
    {
        ImageIcon tmpIconAux = new ImageIcon(ico);
        //Escalar Imagen
        ImageIcon tmpIcon = new ImageIcon(tmpIconAux.getImage().getScaledInstance(200, 200, Image.SCALE_DEFAULT));
        return tmpIcon;
    }

    public static void main(String args[])
    {
        Ejm22_SubirImagen obj=new Ejm22_SubirImagen();
        obj.setVisible(true);
        obj.setImagen();
    }

}

8 Respuestas a “Código Java – Autoajustar Imágenes en un Contenedor

  1. DRAKTSFER julio 16, 2015 en 3:44 pm

    Y COMO LE HAGO PARA UN PROGRAMA QUE ME CLASIFIQUE IMAGENES POR SU FECHA DE CREACION (QUE SE TOMO LA FOTO) Y ORDENARLAS

  2. Jurgen Ramirez marzo 30, 2015 en 5:38 pm

    Como puedo obtener la dirección de la imagen desde un ImageICon quiero obtener su url getClass().getResource(“/imagenes/imagen1Boton2.png”) sí tengo una ImageICon

  3. Anónimo septiembre 4, 2013 en 7:16 pm

    Gracias!!!

  4. Anónimo febrero 12, 2012 en 1:09 pm

    Realmente… poderoso… BeAsTiEuX sos un genio!! anteriormente en foxpro hacia eso y en java crei que no se podia realizar. Gracias por tu publicación.

  5. Angel David Rubio Villarreal febrero 7, 2012 en 9:18 pm

    GRACIAS, GRACIAS, GRACIAS, GRACIAS, GRACIAS, GRACIAS, GRACIAS!!!!! Me costó bastante encontrar una manera de escalar el tamaño de las imágenes! jeje!

  6. Anónimo diciembre 7, 2011 en 2:13 am

    Me sirvio muchisimo gracia spor el aporte

  7. Edwin Mendoza febrero 9, 2011 en 3:10 pm

    Que bien, este ejemplo que has dejado esta buenísimo, pero como ya sabes no puedo ver un código fuente sin antes sacarle gallos; disculpa es mi mala costumbre me empilo cuando veo código java es mi lenguaje favorito, para este caso no seria mejor que el método setImagen() recibiera como parámetro un String para luego pasar este mismo argumento al otro método que has utilizado
    ajustarImagen(String ico).
    De esta forma se tendría un código genérico para cualquier imagen que se podría modificar incluso en la ejecución del programa.
    Gracias por compartir….

    • BeAsTiEuX febrero 9, 2011 en 5:54 pm

      xD, claro Edwin, buen detalle, es lo lógico cuando vas a tener que reutilizarlo muchas veces, pero para entenderlo creo k está bien!!. Un saludote.

No te quedes callado. Pregunta, Comenta, Comparte, Sígueme, Suscríbete, Déjame tu opinión... Soy Beastieux Zeroo...

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: