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

Manejo de BLOB: Escritura y lectura de archivos

Manejo de BLOB: Escritura y lectura de archivos

Un BLOB en SQL es un tipo incorporado que almacena un Objeto Binario Grande como un valor de columna en una fila de una...

Agregar JComboBox a un JTable

Agregar JComboBox a un JTable

En este post, crearemos una tabla swing que implemente un control jcombobox en una columna de una tabla, llenaremos con...

Impresión de reportes

Impresión de reportes

Existen diferentes métodos par imprimir reportes hechos con JasperReport en aplicaciones hechas en java, en este post te...

Crea un servicio web REST con PHP y MYSQL -Parte 2

Crea un servicio web REST con PHP y MYSQL -Parte 2

Segunda parte del tutorial “Crea un servicio web REST con PHP y MYSQL“, en esta segunda y ultima parte se co...

GridView con imagenes en miniatura

GridView con imagenes en miniatura

Entre las muchas aplicaciones que hay en la playstore de google están las galerías de fotos de chicas 🙂 que tantos nos e...

Personalizar JTabbedPane con Netbeans

Personalizar JTabbedPane con Netbeans

Crear una librería swing para java utilizando Netbeans no es nada del otro mundo y la cantidad de código que vayamos a e...

Comparte lo que sabes

Categorias

Últimas entradas

KolibriOS  es un pequeño sistema operativo poderoso, rápido y libre con un núcleo monolítico anticipativo en tiempo real...

Los cursos online se han convertido en algo común en nuestros días y las aplicaciones que hay en la nube para realizar r...

Dia Diagram Editor es un software gratuito de dibujo de código abierto para los sistemas operativos de Windows, Mac OS X...

En ocasiones el limite máximo de importación de base de datos que ofrece PhpMyAdmin (2MB) no es suficiente para lo que q...

Android Bolivia

MAUS