E
- 可以使用此渲染器的值的类型
public interface ListCellRenderer<E>
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; } }
JList
, DefaultListCellRenderer
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
- 如果指定的单元格被选中,则为真。
cellHasFocus
- 如果指定的单元格具有焦点,则为真。
JList
,
ListSelectionModel
,
ListModel
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.