Aprende Java Aprende Php Aprende C++ Aprende HTML 5 Aprende JavaScript Aprende JSON Aprende MySQL Aprende SQLServer Aprende Visual Basic 6 Aprende PostgreSQL Aprende SQLite Aprende Redis Aprende Kotlin Aprende XML Aprende Linux VSC Aprende Wordpress Aprende Laravel Aprende VueJS Aprende JQuery Aprende Bootstrap Aprende Netbeans Aprende Android
Sigueme en Facebook Sigueme en Twitter Sigueme en Instagram Sigueme en Youtube Sigueme en TikTok Sigueme en Whatsapp
Home / Java / Crear imagen dinamicamente y agregar a un objeto swing

Crear imagen dinamicamente y agregar a un objeto swing

Por 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

Artículos similares

Convertir imagenes JPEG a video MOV

Googleando me encontré con una interesante clase java «JpegImagesToMovie» que convierte imágenes JPEG a vídeo MOV de[...]

Simulador de Urna Electrónica en java

Hola 🙂 en esta ocasión un amigo del Brasil nos envía un proyecto java de una Urna Electrónica o Voto Electronico, desarr[...]

Primeros pasos en Jaspersoft Studio

¿Que es Jaspersoft Studio? Jaspersoft Studio es el nuevo diseñador de informes basado en Eclipse para JasperReports y Ja[...]

Codigo de Control en Visual Basic | Impuestos Bolivia

En esta oportunidad dejamos las fuentes del Generador de Código de Control de Impuestos Bolivia (Facturación Virtual), e[...]

Criba de Eratóstenes animado

Eratóstenes era un matemático griego del siglo  III a.C. el cual ideó una manera rápida de obtener todos los números pri[...]

DOM4J: Creación de archivos XML

DOM4J es una de las librerías para java más populares para el trabajo con XML ya que nos permite crea, editar y leer doc[...]