java.lang.Object java.awt.Component java.awt.Container javax.swing.JComponent javax.swing.JLabel javax.swing.DefaultListCellRenderer
public class DefaultListCellRenderer
呈现列表中的一个项。
实现注意事项: 此类重写 invalidate
、validate
、revalidate
、repaint
、isOpaque
和 firePropertyChange
只是为了提高性能。如果不重写这些方法,这些经常调用的方法将执行那些对于默认列表单元格渲染器不必要的代码路径。如果编写自己的渲染器,则要小心权衡重写这些方法的利弊。
警告:此类的序列化对象将与以后的 Swing 版本不兼容。当前的序列化支持适用于短期存储或运行相同 Swing 版本的应用程序之间的 RMI。从 1.4 版本开始,已在 java.beans
包中添加了支持所有 JavaBeansTM 长期存储的功能。请参见 XMLEncoder
。
嵌套类摘要 | |
---|---|
static class |
DefaultListCellRenderer.UIResource 实现 UIResource 的 DefaultListCellRenderer 的子类。 |
从类 javax.swing.JLabel 继承的嵌套类/接口 |
---|
JLabel.AccessibleJLabel |
从类 javax.swing.JComponent 继承的嵌套类/接口 |
---|
JComponent.AccessibleJComponent |
从类 java.awt.Container 继承的嵌套类/接口 |
---|
Container.AccessibleAWTContainer |
从类 java.awt.Component 继承的嵌套类/接口 |
---|
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy |
字段摘要 | |
---|---|
protected static Border |
noFocusBorder 一个空 Border 。 |
从类 javax.swing.JLabel 继承的字段 |
---|
labelFor |
从类 javax.swing.JComponent 继承的字段 |
---|
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW |
从类 java.awt.Component 继承的字段 |
---|
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT |
从接口 javax.swing.SwingConstants 继承的字段 |
---|
BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST |
从接口 java.awt.image.ImageObserver 继承的字段 |
---|
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH |
构造方法摘要 | |
---|---|
DefaultListCellRenderer() 为列表中的项构造默认渲染器对象。 |
方法摘要 | |
---|---|
void |
firePropertyChange(String propertyName, boolean oldValue, boolean newValue) 因为性能原因而被重写。 |
void |
firePropertyChange(String propertyName, byte oldValue, byte newValue) 因为性能原因而被重写。 |
void |
firePropertyChange(String propertyName, char oldValue, char newValue) 因为性能原因而被重写。 |
void |
firePropertyChange(String propertyName, double oldValue, double newValue) 因为性能原因而被重写。 |
void |
firePropertyChange(String propertyName, float oldValue, float newValue) 因为性能原因而被重写。 |
void |
firePropertyChange(String propertyName, int oldValue, int newValue) 因为性能原因而被重写。 |
void |
firePropertyChange(String propertyName, long oldValue, long newValue) 因为性能原因而被重写。 |
protected void |
firePropertyChange(String propertyName, Object oldValue, Object newValue) 因为性能原因而被重写。 |
void |
firePropertyChange(String propertyName, short oldValue, short newValue) 因为性能原因而被重写。 |
Component |
getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) 返回已配置用于显示指定值的组件。 |
void |
invalidate() 因为性能原因而被重写。 |
boolean |
isOpaque() 因为性能原因而被重写。 |
void |
repaint() 因为性能原因而被重写。 |
void |
repaint(long tm, int x, int y, int width, int height) 因为性能原因而被重写。 |
void |
repaint(Rectangle r) 因为性能原因而被重写。 |
void |
revalidate() 因为性能原因而被重写。 |
void |
validate() 因为性能原因而被重写。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
字段详细信息 |
---|
protected static Border noFocusBorder
Border
。可以不使用此字段。要更改此渲染器所使用的
Border
,需要重写
getListCellRendererComponent
方法并直接设置返回组件的边框。
构造方法详细信息 |
---|
public DefaultListCellRenderer()
方法详细信息 |
---|
public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus)
ListCellRenderer
复制的描述
paint
方法来“呈现”单元格。如果由于列表单元格没有固定的大小而有必要计算该列表的尺寸,则调用此方法来生成一个可在其上调用
getPreferredSize
的组件。
ListCellRenderer
中的
getListCellRendererComponent
list
- 正在绘制的 JList。
value
- 由 list.getModel().getElementAt(index) 返回的值。
index
- 单元格索引。
isSelected
- 如果选择了指定的单元格,则为 true。
cellHasFocus
- 如果指定的单元格拥有焦点,则为 true。
JList
,
ListSelectionModel
,
ListModel
public boolean isOpaque()
JComponent
中的
isOpaque
true
,否则返回
false
JComponent.setOpaque(boolean)
public void validate()