当前页面:
在线文档首页 >
JDK 5 Documentation v1.2.2, Java 2 SDK 英文文档
Java(TM) 2 Platform, Standard Edition, v1.2.2 API Specification: Interface ListCellRenderer - JDK 5 Documentation v1.2.2, Java 2 SDK 英文文档
javax.swing
Interface ListCellRenderer
- All Known Implementing Classes:
- DefaultListCellRenderer, BasicComboBoxRenderer
- public interface ListCellRenderer
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 {
public MyCellRenderer() {
setOpaque(true);
}
public Component getListCellRendererComponent(
JList list,
Object value,
int index,
boolean isSelected,
boolean cellHasFocus)
{
setText(value.toString());
setBackground(isSelected ? Color.red : Color.white);
setForeground(isSelected ? Color.white : Color.black);
return this;
}
}
- See Also:
JList
,
DefaultListCellRenderer
getListCellRendererComponent
public Component getListCellRendererComponent(JList list,
Object 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
Submit a bug or feature
Java, Java 2D, and JDBC are a trademarks or registered trademarks of Sun Microsystems, Inc. in the US and other countries.
Copyright 1993-1999 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.