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 }