2010-10-18 11 views

Respuesta

2

Tome un vistazo a este ejemplo que aparece a hacer lo que quiera.

http://www.java2s.com/Code/Java/Swing-JFC/CustomComboBoxwithImage.htm

Lo que se busca es un procesador personalizado para el JComboBox. Un renderizador es simplemente un JComponent, por lo que si puedes crear un componente (JPanel con los elementos necesarios incluidos), puedes crear casi cualquier resultado que puedas imaginar. Incluso puede anular el método de pintura si usar JComponentes estándar no es suficiente para usted.

+1

El procesador predeterminado para un JComboBox apoya iconos. – camickr

9

Sólo añadir un icono al modelo en lugar de una cadena:

import java.awt.*; 
import javax.swing.*; 

public class ComboBoxIcon extends JFrame 
{ 
    JComboBox comboBox; 

    public ComboBoxIcon() 
    { 
     Object[] items = 
     { 
      new ImageIcon("about16.gif"), 
      new ImageIcon("add16.gif"), 
      new ImageIcon("copy16.gif") 
     }; 
     comboBox = new JComboBox(items); 
     getContentPane().add(comboBox, BorderLayout.NORTH); 
    } 

    public static void main(String[] args) 
    { 
     JFrame frame = new ComboBoxIcon(); 
     frame.setDefaultCloseOperation(EXIT_ON_CLOSE); 
     frame.pack(); 
     frame.setLocationRelativeTo(null); 
     frame.setVisible(true); 
    } 
} 
+0

Tengo una matriz de BufferedImage(), ¿puedo usar eso en lugar de elementos []? – user2277550

+0

@ user2277550 crea ImageIcons usando BufferedImage. El cuadro combinado tiene un procesador predeterminado para Iconos, no para imágenes. – camickr

Cuestiones relacionadas