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 / Agrega imagenes en un JComboBox

Agrega imagenes en un JComboBox

Por 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() );
            }
        });
        //=========================
    }

probamos el proyecto:

combo imagen

enjoy 🙂

Tags

Artículos similares

Biblioteca java para leer/escribir Metadatos

En posts anteriores hablamos sobre los metadatos y el porque son importantes en la Seguridad Informática, vimos el manej[...]

Configurar Chrome para usar Tor

Tor es la forma más fácil de navegar por internet de una manera segura y anónima,  Tor cuenta con su propio navegador «T[...]

Crea App multilenguaje con Android Studio

En este post aprenderemos los pasos básicos para construir una aplicación android con soporte multilenguaje, utilizaremo[...]

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

Tutoriales para creación de videojuegos gratis en descarga directa

La comunidad 3D Buzz  era una de los lugares donde la gente curiosa de aprender a realizar videojuegos buscaba recursos[...]

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