Sigueme en Facebook Sigueme en Twitter Sigueme en Instagram Sigueme en Youtube
JC Mouse Bolivia
Index / Java / Colocar imagenes en un JComboBox

Colocar imagenes en un JComboBox

Autor jc mouse viernes, julio 26, 2013

Para agregar imágenes a un JComboBox, partiremos de un proyecto Netbeans con la siguiente estructura:

beans

Tenemos dos clases JChomboBox.java y JChomboRenderer.java, estas dos clases forman lo que sera un nuevo JComboBox con soporte para imágenes.

Tenemos también en el proyecto un JFrame en el cual colocaremos nuestro nuevo JComboBox. Las imágenes que utilizaremos para el JCombo, estarán en el mismo proyecto en una carpeta diferente «/com/bo/res/«

A continuación las clases mencionadas.

Clase JChomboRenderer.java

import java.awt.Component;
import java.io.File;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.ListCellRenderer;
/**
 * @web https://www.jc-mouse.net/
 * @author Mouse
 */
public class JChomboRenderer  extends JLabel implements ListCellRenderer{

    private ImageIcon[] items;
    /** Constrcutor de clase */
    public JChomboRenderer( ImageIcon[] items )
    {
        setOpaque(true);
        this.items = items;            
    }

    @Override
    public Component getListCellRendererComponent(JList list, Object value, 
                     int index, boolean isSelected, boolean cellHasFocus) {

       int selectedIndex = ((Integer)value).intValue();

       if (isSelected) 
       {
            setBackground(list.getSelectionBackground());
            setForeground(list.getSelectionForeground());
       } else {
            setBackground(list.getBackground());
            setForeground(list.getForeground());
       }

        ImageIcon icon = this.items[selectedIndex];
        setIcon( icon );
        File f = new File( items[selectedIndex].toString() );        
        setText( f.getName() );
        return this;

    }

}

Clase JChomboBox.java

import java.awt.Dimension;
import javax.swing.JComboBox;
/**
 * @web https://www.jc-mouse.net/
 * @author Mouse
 */
public class JChomboBox extends JComboBox {

    /** COnstructor de clase */    
    public JChomboBox( int num_items  )
    {   
        Dimension d = new Dimension(206,26);
        this.setSize(d);
        this.setPreferredSize(d);
        //Indices para las imagenes
        for( int i=0; i<num_items; i++)
        {
            this.addItem(i);
        }    
        this.setVisible(true);
    }

}//--> fin clase

Finalmente la forma de implementar este nuevo JComboBox en una interfaz

– Primeramente declaramos una variable para el nuevo JChomboBox y un array de imagenes, las imagenes estan en una carpeta /com/bo/res/ y son 4 en formato PNG

  //instancia
    private JChomboBox jchombobox;     
    //Array de imagenes
    private ImageIcon[] items =
    {            
            new ImageIcon(getClass().getResource("/com/bo/res/clock.png")),
            new ImageIcon(getClass().getResource("/com/bo/res/globe.png")),
            new ImageIcon(getClass().getResource("/com/bo/res/pages.png")),
            new ImageIcon(getClass().getResource("/com/bo/res/recycle.png"))            
    };

– Ahora en el constructor del JFrame, colocamos:

    /**
 * Creates new form JFrame1
 */
    public JFrame1() {
        initComponents();

        //=========================
        //se crea el jcombo pasando la cantidad de imagenes que tendra el jcombobox
        jchombobox = new JChomboBox( items.length );
        //se crea y añade un render pasando un array con las imagenes
        JChomboRenderer render = new JChomboRenderer( items );
        jchombobox.setRenderer(render);
        //se añade jcombo al JFrame
        this.add(jchombobox);        
        //Evento Listener
        jchombobox.addActionListener (new ActionListener () {
            @Override
            public void actionPerformed(ActionEvent e) {
                //Acción cuando se selecciona un valor del jcombo
                System.out.println( "Se selecciono imagen " +  jchombobox.getSelectedItem() );
            }
        });
        //=========================
    }

ejecutamos y tenemos:

combo imagen

Bájate el proyecto aqui

🙂

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

Lectura y edición de metadatos con ExifTool

Lectura y edición de metadatos con ExifTool

En este post te hablaremos sobre una interesante herramienta para le lectura y edición de metadatos que no te debe de fa...

Vibrate: ¿Cómo hacer vibrar un dispositivo Android?

Vibrate: ¿Cómo hacer vibrar un dispositivo Android?

En este post crearemos una app para utilizar el vibrador de nuestro dispositivo android usando para ello el IDE Android...

Buscar y cargar imagenes de disco

Buscar y cargar imagenes de disco

Cuando se almacenan imágenes en una aplicación java y se desea después a modo de registro buscar estas y cargarlas en al...

Personaliza un JComboBox estilo Metro de Windows

Personaliza un JComboBox estilo Metro de Windows

Si bien se pueden encontrar en google estilos java (Look and Feel) listos para cambiar la apariencia de nuestras aplicac...

GSON: Generar JSON desde objetos Java

GSON: Generar JSON desde objetos Java

Gson es una biblioteca de código abierto para Java desarrollado por Google Inc que permite la serialización y deserializ...

Canva: Herramienta de creación de infografías online

Canva: Herramienta de creación de infografías online

¿Que es una infografia? «Una infografía es una representación visual informativa o diagrama de textos escritos que en ci...

1 comentario en “Colocar imagenes en un JComboBox”

  1. abel dice:

    Buenas!! agrdezco el tiempo y dedicacion que tienes para publicar tus trabajos! son de mucha ayuda!
    Te quiero solicitar si tienes informacion de algun procedimiento en java para poder jalar las camaras de vigilancia conectadas e un DVR(grabador digital de video) el cual tiene una aplicacion tipo webserver, estoy tratando de poder ver dichas camaras en una aplicacion que haga yo en java sin necesidad de entrar en la aplicacion propia del DVR.

    Te agradezco la ayuda que me puedas brindar!!

Los comentarios estan cerrados

Comparte lo que sabes

Categorias

Últimas entradas

Melody.ml  es un aplicación online que usa la I.A (Inteligencia Artificial) para procesar archivos MP3 y separar en pist...

Small Basic es un lenguaje de programación propiedad de Microsoft creado especialmente para ayudar a los estudiantes a p...

Lorca Editor es una aplicación online creada por el desarrollador español Domingo Martin el cual tiene como objetivo el...

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...

Herramientas

Generador de Enlaces a Whatsapp