2010-10-18 4 views

ответ

2

Взгляните на этот пример, который, кажется, что вы хотите.

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

Что вы ищете пользовательский визуализатор для JComboBox. Средство визуализации - это просто JComponent, поэтому, если вы можете создать компонент (JPanel с необходимыми элементами), вы можете создать практически любой результат, о котором вы можете думать). Вы даже можете переопределить метод рисования, если вам не хватает стандартных JComponents.

+1

по умолчанию визуализатор для JComboBox поддерживает иконки. – camickr

9

Просто добавьте значок модели вместо строки:

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

У меня есть массив BufferedImage(), могу ли я использовать это вместо элементов [] ?? – user2277550

+0

@ user2277550 Создайте ImageIcons, используя BufferedImage. Поле со списком имеет средство визуализации по умолчанию для значков, а не для изображений. – camickr

Смежные вопросы