问题如题,我在JComboBox中加的JLabel是重画过的。
不考虑重画,就在JComboBox中如何加JLabel。如有达人,不胜感激!

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【Vanish_z】截止到2008-07-03 17:16:50的历史汇总数据(不包括此帖):
    发帖的总数量:10                       发帖的总分数:500                      
    结贴的总数量:9                        结贴的总分数:400                      
    无满意结贴数:1                        无满意结贴分:20                       
    未结的帖子数:1                        未结的总分数:100                      
    结贴的百分比:90.00 %               结分的百分比:80.00 %                  
    无满意结贴率:11.11 %               无满意结分率:5.00  %                  
    值得尊敬
      

  2.   

    回复楼上朋友:现在不考虑效果,只需要知道如何在JComboBox中添加JLabel就行了;
      

  3.   

    package test;import java.awt.*;
    import javax.swing.*;
    import java.awt.event.*;public class ComboBoxTest extends JFrame {
    private JComboBox comboBox; public ComboBoxTest() {
    String colors[] = { "一年级", "二年级","三年级" };
    comboBox = new JComboBox(colors); ComboBoxRenderer renderer = new ComboBoxRenderer();
    comboBox.setRenderer(renderer);
    renderer.setPreferredSize(new Dimension(40, 15));
    comboBox.setEditable(true);
    comboBox.setEditor(new ComboBoxEditorExample()); Container con = getContentPane();
    JPanel panel = new JPanel();
    panel.add(comboBox);
    con.add(panel);
    setSize(300, 150);
    setVisible(true);
    } public static void main(String args[]) {
    new ComboBoxTest();
    }
    }class ComboBoxRenderer extends JLabel implements ListCellRenderer {
    public ComboBoxRenderer() {
    setOpaque(true);
    setHorizontalAlignment(CENTER);
    setVerticalAlignment(CENTER);
    } public Component getListCellRendererComponent(JList list, Object value,
    int index, boolean isSelected, boolean cellHasFocus) {
    if (value instanceof String)
    setText((String)value);
    return this;
    }
    }class ComboBoxEditorExample extends JLabel implements ComboBoxEditor {
    public ComboBoxEditorExample() {
    setOpaque(true);
    setHorizontalAlignment(CENTER);
    setVerticalAlignment(CENTER);
    } public void setItem(Object anObject) {
    if (anObject != null && anObject instanceof String)
    setText((String) anObject);
    /
    } public Component getEditorComponent() {
    return this;
    } public Object getItem() {
    return getText();
    //return getBackground();
    } public void selectAll() {
    } public void addActionListener(ActionListener e) {
    } public void removeActionListener(ActionListener e) {
    }
    }
      

  4.   

    import javax.swing.*;
    import java.awt.*;public class Combobox_image extends JFrame {
        JComboBox comb = new JComboBox();
        public Combobox_image()    {
         
           
     
     for(int i=0;i<5;i++){
            
           
              LabelCellRender   label   =   new   LabelCellRender();   
              label.setIcon(new   ImageIcon("image/3.jpg"));   
              comb.setRenderer(label);          comb.addItem("label"+i);
           }
    JPanel p=new JPanel();         
            p.add(comb);
            add(p);
            setSize(300, 200);
            setLocation(300,300);
            setVisible(true);
        }    public static void main(String[] args) {
           Combobox_image t=new Combobox_image();
           
        }} 
     class   LabelCellRender   extends   JLabel   implements   ListCellRenderer   {   
        
          public   LabelCellRender()   {   
              this.setOpaque(true);   
          }   
        
          public   Component   getListCellRendererComponent(JList   list,   Object   value,   int   index,   boolean   isSelected,   boolean   cellHasFocus)   {   
              if(value!=null)   
              {   
                  setText(value.toString());   
                  setBackground(isSelected   ?   Color.darkGray:   Color.white);   
                  setForeground(isSelected   ?   Color.white   :   Color.black);   
              }   
              return   this;   
          }   
      }   
      

  5.   

    您这是干啥呢?"Label"是要笑死人吗
      

  6.   

    我也有同样的问题,在JComboBox.addItem(new JLabel(XXX));后总是只显示这个JLabel的一些信息比如地址,看不到JLabel本身