モジュール 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
  • フィールド詳細

  • コンストラクタの詳細

    • CellRendererPane

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

    • invalidate

      public void invalidate()
      セル・レンダラの子が設定されるときに、無効なツリーが送られるのを避けるためにオーバーライドされます。
      オーバーライド:
      invalidate 、クラス:  Container
      関連項目:
      Container.validate(), Container.layout(), LayoutManager2
    • paint

      public void paint​(Graphics g)
      呼び出しません。
      オーバーライド:
      paint、クラス: Container
      パラメータ:
      g - 指定されたGraphicsウィンドウ
      関連項目:
      Component.update(Graphics)
    • update

      public void update​(Graphics g)
      呼び出しません。
      オーバーライド:
      update、クラス: Container
      パラメータ:
      g - 指定されたGraphicsウィンドウ
      関連項目:
      Component.update(Graphics)
    • addImpl

      protected void addImpl​(Component x, Object constraints, int index)
      指定したコンポーネントがすでにこれの子である場合、処理は不要です。重なる順番はセル・レンダラ・コンポーネントでは問題にはなりません。CellRendererPaneはいずれの場合もペイントしません。
      オーバーライド:
      addImpl、クラス: Container
      パラメータ:
      x - 追加されるコンポーネント
      constraints - このコンポーネントのレイアウト制約を表現するオブジェクト
      index - コンポーネントを挿入するコンテナのリスト内での位置。-1は最後に挿入することを意味する
      関連項目:
      Container.add(Component), Container.add(Component, int), Container.add(Component, java.lang.Object), Container.invalidate(), LayoutManager, LayoutManager2
    • 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