Module  java.desktop
软件包  javax.swing

Interface ListCellRenderer<E>

  • 参数类型
    E - 可以使用此渲染器的值的类型
    所有已知实现类:
    BasicComboBoxRendererBasicComboBoxRenderer.UIResourceDefaultListCellRendererDefaultListCellRenderer.UIResourceMetalFileChooserUI.FileRendererMetalFileChooserUI.FilterComboBoxRenderer


    public interface ListCellRenderer<E>
    识别可以用作“橡皮图章”来绘制JList中的单元格的组件。 例如,要使用JLabel作为ListCellRenderer,您可以这样写:
       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; } }  
    从以下版本开始:
    1.2
    另请参见:
    JListDefaultListCellRenderer
    • 方法详细信息

      • getListCellRendererComponent

        Component getListCellRendererComponent​(JList<? extends E> list,
                                               E value,
                                               int index,
                                               boolean isSelected,
                                               boolean cellHasFocus)
        返回已配置为显示指定值的组件。 然后调用该组件的paint方法“渲染”单元。 如果需要计算列表的维度,因为列表单元格不具有固定的大小,则调用此方法来生成可以调用getPreferredSize的组件。
        参数
        list - 我们正在画的JList。
        value - 由list.getModel()返回的值getElementAt(index)。
        index - 细胞指数。
        isSelected - 如果指定的单元格被选中, isSelected真。
        cellHasFocus - 如果指定的单元格具有焦点, cellHasFocus真。
        结果
        其paint()方法将呈现指定值的组件。
        另请参见:
        JListListSelectionModelListModel