模块  java.desktop
软件包  javax.swing.table

Class DefaultTableCellRenderer

  • 实现的所有接口
    ImageObserverMenuContainerSerializableAccessibleSwingConstantsTableCellRenderer
    已知直接子类:
    DefaultTableCellRenderer.UIResource

    public class DefaultTableCellRenderer
    extends JLabel
    implements TableCellRenderer, Serializable
    用于在JTable呈现(显示)单个单元格的标准类。

    Implementation Note:此类继承自JLabel ,这是一个标准组件类。 但是, JTable使用独特的机制来渲染其单元格,因此需要从其单元格渲染器中稍微修改一些行为。 表类定义单个单元格渲染器,并将其用作橡皮图章,用于渲染表格中的所有单元格; 它渲染第一个单元格,更改该单元格渲染器的内容,将原点移动到新位置,重新绘制它,依此类推。 标准JLabel组件未设计为以这种方式使用,我们希望避免每次绘制单元格时触发revalidate 这将大大降低性能,因为revalidate消息将在容器的层次结构中向上传递,以确定是否会影响任何其他组件。 由于渲染器仅在绘制操作的生命周期中具有父级,因此我们同样希望避免与绘制操作的层次结构相关联的开销。 所以这个类覆盖了validateinvalidaterevalidaterepaintfirePropertyChange方法是无操作和覆盖isOpaque方法只是为了提高性能。 如果您编写自己的渲染器,请记住此性能考虑因素。

    警告:此类的序列化对象与以后的Swing版本不兼容。 当前的序列化支持适用于运行相同版本Swing的应用程序之间的短期存储或RMI。 从1.4开始, java.beans软件包中添加了对所有JavaBeans java.beans长期存储的支持。 请参阅XMLEncoder

    另请参见:
    JTableSerialized Form