モジュール java.desktop
パッケージ javax.swing

クラスCellRendererPane

  • すべての実装されたインタフェース:
    ImageObserver, MenuContainer, Serializable, Accessible


    public class CellRendererPane
    extends Container
    implements Accessible
    このクラスは、セル・レンダラとそれを使うコンポーネントの間に挿入されます。 これは、repaint() メソッドと invalidate() メソッドを妨害するためのみに存在します。これらのメソッドは、妨害を受けないと、レンダラが構成されたときにツリーを伝播します。 これは、JTable、JTreeおよびJListの実装で使用されます。 たとえば、JListに各行をペイントするコードで、CellRendererPaneがどのように使用されるかを次に示します。
       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のペイントはisShowingがfalseの場合、コンポーネントに対して何もしないためです。

    警告: このクラスの直列化されたオブジェクトは、今後のSwingリリースと互換ではなくなる予定です。 現在の直列化のサポートは、短期間の格納や、同じバージョンのSwingを実行するアプリケーション間のRMIに適しています。 1.4以降、すべてのJavaBeans™用の長期間の格納サポートがjava.beansパッケージに追加されています。 XMLEncoderを参照してください。

    導入されたバージョン:
    1.2
    関連項目:
    直列化された形式
    • フィールドの詳細

      • accessibleContext

        protected AccessibleContext accessibleContext
        このCellRendererPanに関連付けられたAccessibleContext
    • コンストラクタの詳細

      • CellRendererPane

        public CellRendererPane​()
        CellRendererPaneオブジェクトを構築します。
    • メソッドの詳細

      • paintComponent

        public void paintComponent​(Graphics g,
                                   Component c,
                                   Container p,
                                   int x,
                                   int y,
                                   int w,
                                   int h,
                                   boolean shouldValidate)
        セル・レンダラ・コンポーネントcをグラフィックス・オブジェクトgにペイントします。 コンポーネントが描画される前に、必要に応じて、これに親が設定され、その境界はwとhに設定され、グラフィックス・オブジェクトは、実際のx、yに変換されます。 これがJComponentの場合、ダブル・バッファリングは一時的にオフに設定されます。 コンポーネントのペイント後には、その境界は -w、-h、0、0にリセットされるので、それがペイントされた最後のレンダラ・コンポーネントの場合には、入力処理を開始しません。 コンテナ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、幅、高さの各フィールドを使ってthis.paintComponent()を呼び出します。
        パラメータ:
        g - 描画先のGraphicsオブジェクト
        c - 描画対象のComponent
        p - 実際に描画されたContainerコンポーネント
        r - 描画対象のRectangle
      • getAccessibleContext

        public AccessibleContext getAccessibleContext​()
        このCellRendererPaneに関連付けられたAccessibleContextを取得します。 CellRendererPanesの場合、AccessibleContextはAccessibleCellRendererPaneの形式を取ります。 必要に応じて新規のAccessibleCellRendererPaneインスタンスが生成されます。
        定義:
        getAccessibleContext、インタフェース: Accessible
        オーバーライド:
        getAccessibleContext、クラス: Component
        戻り値:
        このCellRendererPaneのAccessibleContextとして機能するAccessibleCellRendererPane