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

クラスZoneView

java.lang.Object
すべての実装されたインタフェース:
SwingConstants

public class ZoneView extends BoxView
ZoneViewはViewの実装で、子ビューが表示またはモデルとビューの変換のために必要になるまで生成または格納されないゾーンを生成します。 この機能を使用すると、表されているモデルが非常に大きい場合に、アクティブに表示、編集されている領域だけのビュー・オブジェクトを構築することで、大幅にメモリーの消費を削減できます。 子のサイズは推測することも保存された結果だけで非同期に計算することもできます。

ZoneViewは子のゾーンを実装するボックスを提供するためにBoxViewを拡張します。 ゾーンはクラスのインスタンスの子という特別なView実装で、ZoneViewのインスタンスがかかわっているモデルの部分だけを表します。 ゾーンは子のビューの表示の試みられるまで子ビューを生成しません。 ボックス型のビューは次の理由により適しています。

  • ボックスは良く使用されるビューで、この動作を提供するボックスによりビュー・ファクトリからビュー階層へ動作をプラグする機会を提供できる。
  • ボックスは一方向に並べられているため、確実な方法で簡単にゾーンに分割できる。
  • 通常、ボックスとモデルの関係は簡単で、ボックスは子の要素を直接表す子ビューを生成する。
  • ボックスはほかの型よりも簡単にサイズを推定できる。

デフォルトの動作は、maxZoneSizeとmaxZonesLoadedの2つのプロパティが制御しています。 maxZoneSizeをInteger.MAX_VALUEに設定するとゾーンを一つしか生成しないという効果があります。 そのため、ビューを効果的にデコレータ・パターンの実装へ切り替えることができます。 maxZonesLoadedをInteger.MAX_VALUEの値に設定すると、ゾーンのアンロードはできません。 簡単に言うと、ビューがかかわっている要素の子要素が表されている境界に生成されます。 ゾーンは任意のView実装となることができますが、デフォルトの実装はかなり大きなゾーンをサポートしているAsyncBoxViewが基になります。

導入されたバージョン:
1.3
関連項目: