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

クラスDefaultTableCellRenderer

  • すべての実装されたインタフェース:
    ImageObserver, MenuContainer, Serializable, Accessible, SwingConstants, TableCellRenderer
    直系の既知のサブクラス:
    DefaultTableCellRenderer.UIResource

    public class DefaultTableCellRenderer
    extends JLabel
    implements TableCellRenderer, Serializable
    JTable内の個々のセルをレンダリング(表示)するための標準クラス。

    実装上の注意: このクラスは標準コンポーネント・クラスのJLabelを継承しています。 ただし、JTableはそのセルのレンダリングに独自のメカニズムを採用しているため、そのセル・レンダラから多少の変更が加えられた動作を必要とします。 テーブル・クラスは単一のセル・レンダラを定義し、テーブル内のすべてのセルをレンダリングするゴム・スタンプとしてそれを使用します。つまり、最初のセルをレンダリングしたら、そのセル・レンダラのコンテンツを変更し、原点を新しい位置に移動して、それを再描画するという具合です。 標準のJLabelコンポーネントはこのような方法で使用するように設計されなかったため、セルが描画されるたびに、revalidateがトリガーされないようにする必要があります。 revalidateメッセージは他のコンポーネントが影響を受けるかどうかを判定するためにコンテナの上位階層に渡されるので、トリガーされないようにしないと、パフォーマンスが大幅に低下します。 レンダラはペイント操作の有効期間にのみ生成されるため、同様にペイント操作の階層内の移動にまつわるオーバーヘッドが生じないようにする必要もあります。 そのため、このクラスは、validateinvalidaterevalidaterepaint、およびfirePropertyChangeメソッドを何もしないようにオーバーライドし、単にパフォーマンスを向上させるためにisOpaqueメソッドをオーバーライドします。 独自のレンダラを書き込む場合は、このパフォーマンスのことを考慮してください。

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

    関連項目:
    JTable, 「直列化されたフォーム」