javax.swing

接口
异常
所有已知实现类:
BasicComboBoxRenderer, BasicComboBoxRenderer.UIResource, DefaultListCellRenderer, DefaultListCellRenderer.UIResource, MetalFileChooserUI.FileRenderer, MetalFileChooserUI.FilterComboBoxRenderer

public interface ListCellRenderer

标识可用作“橡皮图章”以绘制 JList 中单元格的组件。例如,要将 JLabel 用作 ListCellRenderer,则需要编写:

 class MyCellRenderer extends JLabel implements ListCellRenderer {
     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;
     }
 }
 

另请参见:
JList, DefaultListCellRenderer

方法摘要
 Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus)
          返回已配置用于显示指定值的组件。
 

方法详细信息

getListCellRendererComponent

Component getListCellRendererComponent(JList list,
                                       Object value,
                                       int index,
                                       boolean isSelected,
                                       boolean cellHasFocus)
返回已配置用于显示指定值的组件。然后调用该组件的 paint 方法来“呈现”单元格。如果由于列表单元格没有固定的大小而有必要计算该列表的尺寸,则调用此方法来生成一个可在其上调用 getPreferredSize 的组件。

参数:
list - 正在绘制的 JList。
value - 由 list.getModel().getElementAt(index) 返回的值。
index - 单元格索引。
isSelected - 如果选择了指定的单元格,则为 true。
cellHasFocus - 如果指定的单元格拥有焦点,则为 true。
返回:
其 paint() 方法将呈现指定值的组件。
另请参见:
JList, ListSelectionModel, ListModel