模块  java.desktop
软件包  javax.swing

Class CellRendererPane

  • 实现的所有接口
    ImageObserverMenuContainerSerializableAccessible

    public class CellRendererPane
    extends Container
    implements Accessible
    此类插入单元格渲染器和使用它们的组件之间。 它只是为了阻止repaint()和invalidate()方法,否则这些方法会在配置渲染器时向上传播。 它由JTable,JTree和JList的实现使用。 例如,下面是如何在代码中使用CellRendererPane绘制JList中的每一行:
      cellRendererPane = new CellRendererPane();
       ...
       Component rendererComponent = renderer.getListCellRendererComponent();
       renderer.configureListCellRenderer(dataModel.getElementAt(row), row);
       cellRendererPane.paintComponent(g, rendererComponent, this, x, y, w, h); 

    渲染器组件必须覆盖isShowing()并无条件地返回true才能正常工作,因为Swing paint对isShowing为false的组件不执行任何操作。

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

    从以下版本开始:
    1.2
    另请参见:
    Serialized Form
    • 字段详细信息

      • accessibleContext

        protected AccessibleContext accessibleContext
        AccessibleContext与这 CellRendererPan相关联
    • 构造方法详细信息

      • CellRendererPane

        public CellRendererPane()
        构造一个CellRendererPane对象。
    • 方法详细信息

      • paintComponent

        public void paintComponent​(Graphics g,
                                   Component c,
                                   Container p,
                                   int x,
                                   int y,
                                   int w,
                                   int h,
                                   boolean shouldValidate)
        在图形对象g上绘制单元格渲染器组件c。 在绘制组件之前,它被重新定义(如果有必要),它的边界被设置为w,h,图形对象被(有效地)转换为x,y。 如果它是JComponent,则暂时关闭双缓冲。 绘制组件后,它的边界将重置为-w,-h,0,0,这样,如果它是绘制的最后一个渲染器组件,它将不会开始消耗输入。 Container p是我们实际使用的组件,通常它等于this.getParent()。 如果shouldValidate为true,则组件c将在绘制之前进行验证。
        参数
        g - 要绘制的 Graphics对象
        c - 绘制 Component
        p - 实际绘制的 Container组件
        x - 指定区域左侧的int,以像素为单位,从图形上下文的左边缘开始测量
        y - 指定要绘制的区域顶部的int,以图形上下文的上边缘向下测量的像素为单位
        w - 一个int,指定绘制区域的宽度,以像素为单位
        h - 一个int,指定绘制区域的高度,以像素为单位
        shouldValidate - 如果为true,则在绘制之前将验证组件 c
      • paintComponent

        public void paintComponent​(Graphics g,
                                   Component c,
                                   Container p,
                                   int x,
                                   int y,
                                   int w,
                                   int h)
        调用this.paintComponent(g,c,p,x,y,w,h,false)。
        参数
        g - 要绘制的 Graphics对象
        c - 要绘制的 Component
        p - 实际绘制的 Container组件
        x - 指定区域左侧的int,以像素为单位,从图形上下文的左边缘开始测量
        y - 一个int,指定要绘制的区域的顶部,以图形上下文的上边缘向下测量的像素为单位
        w - 一个int,指定绘制区域的宽度,以像素为单位
        h - 指定绘制区域高度的int,以像素为单位
      • paintComponent

        public void paintComponent​(Graphics g,
                                   Component c,
                                   Container p,
                                   Rectangle r)
        使用矩形x,y,width,height字段调用this.paintComponent()。
        参数
        g - 要绘制的 Graphics对象
        c - 绘制 Component
        p - 实际绘制的 Container组件
        r - 绘制 Rectangle
      • getAccessibleContext

        public AccessibleContext getAccessibleContext()
        获取与此CellRendererPane关联的AccessibleContext。 对于CellRendererPanes,AccessibleContext采用AccessibleCellRendererPane的形式。 如有必要,将创建一个新的AccessibleCellRendererPane实例。
        Specified by:
        getAccessibleContext接口 Accessible
        重写:
        getAccessibleContext在类 Component
        结果
        一个AccessibleCellRendererPane,用作此CellRendererPane的AccessibleContext