001    package com.github.sarxos.webcam;
002    
003    import java.awt.Component;
004    
005    import javax.swing.ImageIcon;
006    import javax.swing.JLabel;
007    import javax.swing.JList;
008    import javax.swing.ListCellRenderer;
009    
010    
011    public class WebcamPickerCellRenderer extends JLabel implements ListCellRenderer {
012    
013            private static final long serialVersionUID = 1L;
014    
015            private static final ImageIcon ICON = new ImageIcon(WebcamPickerCellRenderer.class.getResource("/com/github/sarxos/webcam/icons/camera-icon.png"));
016    
017            public WebcamPickerCellRenderer() {
018                    setOpaque(true);
019                    setHorizontalAlignment(LEFT);
020                    setVerticalAlignment(CENTER);
021                    setIcon(ICON);
022            }
023    
024            @Override
025            public Component getListCellRendererComponent(JList list, Object value, int i, boolean selected, boolean focused) {
026    
027                    Webcam webcam = (Webcam) value;
028    
029                    if (selected) {
030                            setBackground(list.getSelectionBackground());
031                            setForeground(list.getSelectionForeground());
032                    } else {
033                            setBackground(list.getBackground());
034                            setForeground(list.getForeground());
035                    }
036    
037                    setText(webcam.getName());
038                    setFont(list.getFont());
039    
040                    return this;
041            }
042    
043    }