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(); } }
Pueder ir al artículo principal:
Códigos Sencillos hechos en Java
Y COMO LE HAGO PARA UN PROGRAMA QUE ME CLASIFIQUE IMAGENES POR SU FECHA DE CREACION (QUE SE TOMO LA FOTO) Y ORDENARLAS
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
Gracias!!!
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.
GRACIAS, GRACIAS, GRACIAS, GRACIAS, GRACIAS, GRACIAS, GRACIAS!!!!! Me costó bastante encontrar una manera de escalar el tamaño de las imágenes! jeje!
Me sirvio muchisimo gracia spor el aporte
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….
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.