2010-10-18 182 views

回答

2

看看這個例子,看起來做你想做的。

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

你要找的是JComboBox時自定義呈現。渲染器只是一個JComponent,所以如果你可以創建一個組件(包含必要項目的JPanel),那麼你可以創建幾乎所有你能想到的結果)。如果使用標準JComponents對於您來說不夠,您甚至可以重寫paint方法。

+1

爲的JComboBox的默認渲染器支持圖標。 – camickr 2010-10-18 23:24:58

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()的數組,我可以用它來代替items []嗎? – user2277550 2015-12-20 20:08:29

+0

@ user2277550使用BufferedImage創建ImageIcons。組合框有一個默認的圖標渲染器,而不是圖像。 – camickr 2015-12-21 00:30:23