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

Buscar dispositivos con Java Media Framework

Buscar dispositivos con Java Media Framework

Java Media Framwork ademas de permitir reproducir archivos multimedia, tambien permite trabajar con dispositivos de capt...

Cambiar la Interfaz Gráfica con skin java

Cambiar la Interfaz Gráfica con skin java

La Interfaz Grafica de Usuario en Java nos brinda la posibilidad de cambiar la apariencia de nuestras aplicaciones, ya s...

Rompecabezas [Código Fuente]

Rompecabezas [Código Fuente]

Hace tiempo me pidieron el código fuente de un juego de Puzzle de Neon Genesis Evangelión, este juego es completo, tiene...

Tablas virtuales en java (View)

Tablas virtuales en java (View)

Una Vista (View) es una Tabla Virtual cuyo contenido está definido por una consulta (SELECT), al igual que una tabla rea...

Crea un servicio web REST con PHP y MYSQL

Crea un servicio web REST con PHP y MYSQL

Servicio Web Un servicio web (en inglés, Web Service o Web services) es una tecnología que utiliza un conjunto de protoc...

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

El Tangram es un juego chino muy antiguo, esta compuesto por 7 piezas: un paralelogramo (romboide), un cuadrado y 5 triá...

Espresso es un framework de testing propiedad de Google que está dirigido a desarrolladores que creen que las pruebas au...

Harvard WorldMap es una plataforma de mapeo de código abierto en línea, desarrollado por el Centro de Análisis Geográfic...

Realizar pruebas sobre nuestro código nos permiten comprobar su correcto funcionamiento e integración con otros módulos...

Android Bolivia

MAUS