001package com.github.sarxos.webcam; 002 003import java.awt.Component; 004 005import javax.swing.ImageIcon; 006import javax.swing.JLabel; 007import javax.swing.JList; 008import javax.swing.ListCellRenderer; 009 010 011public 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}