1 19 package org.lucane.applications.slideshow.gui; 20 21 import java.awt.BorderLayout ; 22 import java.awt.Color ; 23 import java.awt.Component ; 24 import java.awt.Image ; 25 import java.util.HashMap ; 26 27 import javax.swing.BorderFactory ; 28 import javax.swing.JList ; 29 import javax.swing.JPanel ; 30 import javax.swing.ListCellRenderer ; 31 32 public class ImageRenderer implements ListCellRenderer 33 { 34 private HashMap scaledImages = new HashMap (); 35 36 public Component getListCellRendererComponent(JList list, Object value, 37 int index, boolean isSelected, boolean cellHasFocus) 38 { 39 40 JPanel container = (JPanel )scaledImages.get(value); 41 if(container == null) 42 { 43 Image img = (Image )value; 44 ImageComponent component = new ImageComponent(); 45 Image scaled = img.getScaledInstance(128, -1, Image.SCALE_FAST); 46 component.setImage(scaled, false); 47 container = new JPanel (new BorderLayout ()); 48 container.add(component, BorderLayout.CENTER); 49 scaledImages.put(value, container); 50 } 51 52 Color color = Color.LIGHT_GRAY; 53 if (isSelected) 54 color = Color.ORANGE; 55 56 container.setBorder(BorderFactory.createLineBorder(color, 2)); 57 return container; 58 } 59 } 60 | Popular Tags |