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