Interface ListCellRenderer<E>

  • Type Parameters:
    E - the type of values this renderer can be used for
    All Known Implementing Classes:
    BasicComboBoxRenderer, BasicComboBoxRenderer.UIResource, DefaultListCellRenderer, DefaultListCellRenderer.UIResource, MetalFileChooserUI.FileRenderer, MetalFileChooserUI.FilterComboBoxRenderer


    public interface ListCellRenderer<E>
    Identifies components that can be used as "rubber stamps" to paint the cells in a JList. For example, to use a JLabel as a ListCellRenderer, you would write something like this:
      class MyCellRenderer extends JLabel implements ListCellRenderer<Object> { public MyCellRenderer() { setOpaque(true); } public Component getListCellRendererComponent(JList<?> list, Object value, int index, boolean isSelected, boolean cellHasFocus) { setText(value.toString()); Color background; Color foreground; // check if this cell represents the current DnD drop location JList.DropLocation dropLocation = list.getDropLocation(); if (dropLocation != null && !dropLocation.isInsert() && dropLocation.getIndex() == index) { background = Color.BLUE; foreground = Color.WHITE; // check if this cell is selected } else if (isSelected) { background = Color.RED; foreground = Color.WHITE; // unselected, and not the DnD drop location } else { background = Color.WHITE; foreground = Color.BLACK; }; setBackground(background); setForeground(foreground); return this; } } 
     
    See Also:
    JList, DefaultListCellRenderer
    • Method Summary

      Modifier and Type Method and Description
      Component getListCellRendererComponent(JList<? extends E> list, E value, int index, boolean isSelected, boolean cellHasFocus)
      Return a component that has been configured to display the specified value.
    • Method Detail

      • getListCellRendererComponent

        Component getListCellRendererComponent(JList<? extends E> list,
                                               E value,
                                               int index,
                                               boolean isSelected,
                                               boolean cellHasFocus)
        Return a component that has been configured to display the specified value. That component's paint method is then called to "render" the cell. If it is necessary to compute the dimensions of a list because the list cells do not have a fixed size, this method is called to generate a component on which getPreferredSize can be invoked.
        Parameters:
        list - The JList we're painting.
        value - The value returned by list.getModel().getElementAt(index).
        index - The cells index.
        isSelected - True if the specified cell was selected.
        cellHasFocus - True if the specified cell has the focus.
        Returns:
        A component whose paint() method will render the specified value.
        See Also:
        JList, ListSelectionModel, ListModel