Sigueme en Facebook Sigueme en Twitter Sigueme en Instagram Sigueme en Youtube
JC Mouse Bolivia
Index / Java / Crear imagen dinamicamente y agregar a un objeto swing

Crear imagen dinamicamente y agregar a un objeto swing

Autor jc mouse jueves, enero 25, 2018

Si bien se puede hacer uso de archivos de imagen (jpg, png, bmp, etc) en las aplicaciones java, también este te permite crear imágenes dinamicamente mediante su API 2D Graphics2D que se extiende de la clase abstracta Graphics  el cual proporciona los métodos necesarios para crear imágenes complejas a partir de objetos básicos.

En los siguientes enlaces puedes ver la documentación oficial (en ingles) de Oracle para las clases:

A continuación dos métodos que haciendo uso de primitivas como son círculos y también polígonos, crea una imagen en memoria el cual puede ser asignado a cualquier control que soporte este tipo de propiedad.

    private Image creaImagen() {
        //imagen en memoria
        BufferedImage img = new BufferedImage(48, 48, BufferedImage.TYPE_INT_ARGB);
        //
        Graphics2D g2d = (Graphics2D) img.getGraphics();
        g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);         
        //circulo
        g2d.setColor(new Color(101,193,238));       
        g2d.fillOval(2, 2, 44, 44);
        
        //circulo borde
        g2d.setStroke(new BasicStroke(2.0f));
        g2d.setColor(new Color(12,89,183));       
        g2d.drawOval(2, 2, 44, 44);
        
        //Poligono
        g2d.setColor(new Color(50,149,218));       
        g2d.fillPolygon(getFlechaP(11,15));
        
        g2d.setColor(new Color(255,255,255));       
        g2d.fillPolygon(getFlecha(9,13));        
        
        return img;
    }

Método con coordenadas que representan una flecha

    /**
     * coordenadas de una flecha
     */
    private Polygon getFlecha(int px, int py){
        Polygon flecha = new Polygon();
        flecha.addPoint( px, py + 6 );          
        flecha.addPoint( px + 16, py + 6 );          
        flecha.addPoint( px + 16, py );  
        flecha.addPoint( px + 30, py + 11 );  
        flecha.addPoint( px + 16, py + 22 );  
        flecha.addPoint( px + 16, py + 16 );  
        flecha.addPoint( px, py + 16 );  
        return flecha;
    }

Y asignando esta imagen a un JLabel, tenemos:

ImageIcon icon = new ImageIcon(creaImagen());
jLabel1.setIcon(icon);
jLabel1.setText("Hola Mundo Cruel!!!");

hola papu

enjoy!!!

Tags

Si te ha gustado podrías compartirlo o dejar un comentario. ¡Muchas gracias!
Autor: JC Mouse

Yo soy yo :) JC Mouse, Soy orgullosamente boliviano soy fundador y CEO de la web jc-Mouse.net uno de las pocas web en emprendimiento y tecnología en Bolivia.

Toda la información que encuentres en este sitio es y sera completamente gratis siempre, puedes copiar, descargar y re-publicar si así lo deseas en otros blogs o sitios web, solo te pido a cambio que dejes una referencia a esta web. Esto nos ayuda a crecer y seguir aportando. Bye

Enjoy! :)

También Te Podría Interesar

TextToSpeech: Convierte texto a voz

TextToSpeech: Convierte texto a voz

TextToSpeech o TTS, es el sintetizador de voz para android, en los celulares inteligentes viene un motor TTS por defecto...

Impresión de imágenes en PDF

Impresión de imágenes en PDF

Existen varias aplicaciones (free y de pago) que emulan una impresora virtual para generar archivos en PDF  (Portable Do...

CUF: Código Único en Kotlin

CUF: Código Único en Kotlin

En este post implementamos en lenguaje Kotlin (lenguaje de programación de tipado estático que corre sobre la máquina vi...

Leer y escribir en un archivo binario

Leer y escribir en un archivo binario

Problema: Desarrolle un programa en consola con c# para escribir y leer información de un archivo binario. Los datos a e...

Generar clases desde Esquemas XSD

Generar clases desde Esquemas XSD

XJC es una herramienta de linea de comandos del compilador de esquemas de JAXB que se puede utilizar para convertir un e...

Reproduce archivos MP3 desde android

Reproduce archivos MP3 desde android

Reproducir archivos de audio en nuestras aplicaciones android. Necesitamos IDE Eclipse y SDK Android instalado Un archiv...

Comparte lo que sabes

Categorias

Últimas entradas

En muchas ocasiones es necesaria la personalización de componentes java para que estos se adecuen a nuestros requerimien...

En este post mostramos como personalizar el Header (encabezado) de un componente JTable en Java colocando iconos, centra...

El JTable de Java es un gran componente para mostrar datos en una tabla de una forma rápida y sencilla, sin embargo en v...

En este post veremos un ejemplo sencillo de como descargar desde Internet archivos de cualquier tipo (*.jpg, *.png, *.gi...

Herramientas

Generador de Enlaces a Whatsapp