要把JComboBox中的Item填加成一些图片怎么办,图片放在哪个目录中

解决方案 »

  1.   

    //使用的代码
    picture=new JComboBox();picture.setBounds(new Rectangle(283,81,58,37));//没使用Layout,这是定位它的位置和大小
    String[] picArr=new String[]{"pic1.jpg", "pic2.jpg",
    "pic3.jpg", "pic4.jpg"};//Combox中显示的图片名
    picture.setModel(new HeadPicComboBoxModel(picArr));//设置ComboBox中元素模型
    picture.setRenderer(new HeadpicCellRenderer()); //设置ComboBox的显示
    //继承DefaultComboBoxModel设置要在ComboBox中显示的元素模型类
    class HeadPicComboBoxModel extends DefaultComboBoxModel {
    public HeadPicComboBoxModel(String[] pics) {
    for(int i=0; i < pics.length; ++i) {
                                //添加显示的对象
    addElement(new Object[] { new ImageIcon("images\\"+pics[i]) } );
    }
    }
             //在HeadpicCellRenderer中要用到
    public Icon getIcon(Object object) {
    Object[] array = (Object[])object;
    return (Icon)array[0];
    }
    }//ComboBox显示方式
    class HeadpicCellRenderer extends JLabel implements ListCellRenderer {
    private Border
    lineBorder = BorderFactory.createLineBorder(Color.red, 2),
    emptyBorder = BorderFactory.createEmptyBorder(2,2,2,2); public HeadpicCellRenderer() {
    setOpaque(true);
    }
    public Component getListCellRendererComponent(JList list,Object value,int index,boolean isSelected,boolean cellHasFocus) {
    HeadPicComboBoxModel model =(HeadPicComboBoxModel)list.getModel(); setIcon(model.getIcon(value)); if(isSelected) {
    setForeground(list.getSelectionForeground());
    setBackground(list.getSelectionBackground());
    }
    else {
    setForeground(list.getForeground());
    setBackground(list.getBackground());
    } if(cellHasFocus) setBorder(lineBorder);
    else   setBorder(emptyBorder); return this;
    }
    }
      

  2.   

    和java文件放在一个目录下就行,但是编码规范点就你新建个目录放在心目录下就行,加载时只要这个目录在项目下直接在图片路径中加上包名就行了