Tuesday, September 14, 2010

Add image to jList

rendering images in JList cells

        ArrayList list = new ArrayList();
        list.add("kasun");
        list.add("laknath");
        list.add("peter");


Icon pingImage = new ImageIcon("images/server.png");
jList1.setCellRenderer(new ImageListCellRenderer()); // need imageListCellRenderer class


ArrayList l2 =new ArrayList();

        String name;
        for (int i = 0; i < list.size(); i++) {
        name = list.get(i).toString();
        JLabel pingLabel= new JLabel(name, pingImage, JLabel.LEFT);
        JPanel pingPanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
        pingPanel.add(pingLabel);
        l2.add(pingPanel);
        }
        Object[] panels = l2.toArray();
        jList1.setListData(panels);


class ImageListCellRenderer implements ListCellRenderer{

   public Component getListCellRendererComponent(JList jlist, Object value, int cellIndex,
                                                boolean isSelected,
                                                boolean cellHasFocus)
  {
    if (value instanceof JPanel)
    {
      Component component = (Component) value;
      component.setForeground (Color.BLUE);
      component.setBackground(Color.WHITE);
      //component.setBackground (isSelected ? UIManager.getColor("Table.focusCellForeground") : Color.white);
      return component;
    }
    else
    {
      return new JLabel("???");
    }
  }

http://www.devdaily.com/java/jlist-image-jlabel-renderer

No comments:

Post a Comment