Module  java.desktop
软件包  javax.swing.table

Class DefaultTableCellRenderer

  • All Implemented Interfaces:
    ImageObserverMenuContainerSerializableAccessibleSwingConstantsTableCellRenderer
    已知直接子类:
    DefaultTableCellRenderer.UIResource


    public class DefaultTableCellRenderer
    extends JLabel
    implements TableCellRenderer, Serializable
    JTable渲染(显示)单个单元格的标准类。

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

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

    另请参见:
    JTableSerialized Form