package com.github.sarxos.webcam; import java.awt.Component; import javax.swing.ImageIcon; import javax.swing.JLabel; import javax.swing.JList; import javax.swing.ListCellRenderer; public class WebcamPickerCellRenderer extends JLabel implements ListCellRenderer { private static final long serialVersionUID = 1L; private static final ImageIcon ICON = new ImageIcon(WebcamPickerCellRenderer.class.getResource("/com/github/sarxos/webcam/icons/camera-icon.png")); public WebcamPickerCellRenderer() { setOpaque(true); setHorizontalAlignment(LEFT); setVerticalAlignment(CENTER); setIcon(ICON); } @Override public Component getListCellRendererComponent(JList list, Object value, int i, boolean selected, boolean focused) { Webcam webcam = (Webcam) value; if (selected) { setBackground(list.getSelectionBackground()); setForeground(list.getSelectionForeground()); } else { setBackground(list.getBackground()); setForeground(list.getForeground()); } setText(webcam.getName()); setFont(list.getFont()); return this; } }