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

クラスBoxView

  • すべての実装されたインタフェース:
    SwingConstants
    直系の既知のサブクラス:
    BlockView, FlowView, TableView, TableView.TableCell, TableView.TableRow, WrappedPlainView, ZoneView

    public class BoxView
    extends CompositeView
    ビューは、ビューの子を軸に沿ってタイリングすることで、1つのボックスの形状に配置します。 このボックスは、子の配列をするところでは子の柔軟性も考慮されるという点で、TeXに用意されているボックスと似ています。したがって、行、段落、リスト項目、列、ページなどのコレクションを表示するのに便利な基本単位です。子のタイリングが行われる軸は、主軸とみなされます。 これに直角の軸は、副軸です。

    各軸のレイアウトは、layoutMajorAxisメソッドとlayoutMinorAxisメソッドとで別々に処理されます。 サブクラスは、これらのメソッドをもう一度実装することで、レイアウト・アルゴリズムを変更します。 これらのメソッドは、キャッシュされたレイアウト情報があるかどうか、またキャッシュが有効であるかどうかによって、必要に応じて呼び出されます。 通常、軸に沿った指定サイズが変更される場合や、layoutChangedが呼び出されてレイアウトが強制的に変更される場合に、これらのメソッドが呼び出されます。 キャッシュされたレイアウト情報がある場合は、layoutChangedメソッドで無効にされます。 親ビューに通知された要件は、calculateMajorAxisRequirementsメソッドやcalculateMinorAxisRequirementsメソッドで計算されます。 レイアウト・アルゴリズムが変更された場合、これらのメソッドは再度実装される必要があります。

    • コンストラクタの詳細

      • BoxView

        public BoxView​(Element elem,
                       int axis)
        BoxViewを構築します。
        パラメータ:
        elem - このビューが扱う要素
        axis - View.X_AXISまたはView.Y_AXIS
    • メソッドの詳細

      • getAxis

        public int getAxis()
        タイル軸のプロパティを取得します。 これは、子ビューがタイリングされる軸です。
        戻り値:
        ボックスの主軸。View.X_AXISまたはView.Y_AXIS
        導入されたバージョン:
        1.3
      • setAxis

        public void setAxis​(int axis)
        タイル軸のプロパティを設定します。 これは、子ビューがタイリングされる軸です。
        パラメータ:
        axis - View.X_AXISまたはView.Y_AXIS
        導入されたバージョン:
        1.3
      • layoutChanged

        public void layoutChanged​(int axis)
        軸に沿ったレイアウトを無効にします。 レイアウトの子のビューの推奨設定が変更されていると、自動的に無効になります。 推奨設定が変更されていないときに再計算する必要がある場合もあります。 このメソッドを呼び出せば、レイアウトを無効としてマークできます。 一般に描画の場合、レイアウトはsetSizeメソッドが次回このビューに呼び出されたときに更新されます。
        パラメータ:
        axis - View.X_AXISまたはView.Y_AXIS
        導入されたバージョン:
        1.3
      • isLayoutValid

        protected boolean isLayoutValid​(int axis)
        指定された軸に沿ってレイアウトが有効かどうかを決定します。
        パラメータ:
        axis - View.X_AXISまたはView.Y_AXIS
        戻り値:
        指定された軸に沿ってレイアウトが有効な場合
        導入されたバージョン:
        1.4
      • paintChild

        protected void paintChild​(Graphics g,
                                  Rectangle alloc,
                                  int index)
        子をペイントします。 デフォルトの機能はそれだけですが、サブクラスはこれを使って、子に関連するものを描画できます。
        パラメータ:
        g - グラフィックス・コンテキスト
        alloc - ペイントのために割り当てられた領域
        index - 子のインデックス。0以上でgetViewCount()より小さい値
      • replace

        public void replace​(int index,
                            int length,
                            View[] elems)
        レイアウトを無効にして、要求または割当てのキャッシュのサイズを変更します。 子の割当ては、まだ以前のレイアウトにアクセスできますが、新しい子の座標とスパンは0になります。
        オーバーライド:
        replace、クラス: CompositeView
        パラメータ:
        index - 新規ビューを挿入するための、子ビューの開始インデックス。この値は0以上で、getViewCount以下
        length - 削除する既存の子ビューの数。この値は0以上で、(getViewCount() - offset)以下
        elems - 追加する子ビュー。追加される子がない場合は、nullも可(削除に便利)
      • preferenceChanged

        public void preferenceChanged​(View child,
                                      boolean width,
                                      boolean height)
        子に呼び出され、そのスパンの設定が変更されたことを示します。 次回に子の割当てが必要なときに新しく計算が実行されるように、キャッシュされたレイアウト情報を捨てるために実装されています。
        オーバーライド:
        preferenceChanged、クラス: View
        パラメータ:
        child - 子ビュー
        width - 幅の設定が変更された場合にtrue
        height - 高さの設定が変更された場合にtrue
        関連項目:
        JComponent.revalidate()
      • getResizeWeight

        public int getResizeWeight​(int axis)
        サイズ変更のウエイトを取得します。 値が0以下の場合はサイズ変更できません。
        オーバーライド:
        getResizeWeight、クラス: View
        パラメータ:
        axis - View.X_AXISまたはView.Y_AXIS
        戻り値:
        ウエイト
        例外:
        IllegalArgumentException - 軸が無効な場合
      • setSize

        public void setSize​(float width,
                            float height)
        ビューのサイズを設定します。 これにより、ビューでレイアウト情報がキャッシュされていると、ビューのレイアウトが行われます。 この実装では、インセット内のサイズを使用してレイアウト・メソッドが呼び出されます。
        オーバーライド:
        setSize、クラス: View
        パラメータ:
        width - 幅>= 0
        height - 高さ>= 0
      • paint

        public void paint​(Graphics g,
                          Shape allocation)
        特定のレンダリング表面とその表面上の領域を使用してBoxViewをレンダリングします。 指定されたGraphicsのクリップ境界を交差する子だけが描画されます。
        定義:
        paint、クラス: View
        パラメータ:
        g - 使用する描画表面
        allocation - 描画するために割り当てられた領域
        関連項目:
        View.paint(java.awt.Graphics, java.awt.Shape)
      • getChildAllocation

        public Shape getChildAllocation​(int index,
                                        Shape a)
        指定された子ビューの割り当てを取得します。 さまざまなビューの配置場所を探せます。 レイアウトが無効な場合はnullを返すために実装し、そうでない場合はスーパー・クラスが実行されます。
        オーバーライド:
        getChildAllocation、クラス: CompositeView
        パラメータ:
        index - 子のインデックス。0以上でgetViewCount()より小さい値
        a - このビューに対する割当て
        戻り値:
        子に対する割当て。anullの場合はnull。レイアウトが無効の場合もnull
      • modelToView

        public Shape modelToView​(int pos,
                                 Shape a,
                                 Position.Bias b)
                          throws BadLocationException
        ドキュメント・モデルの座標空間からビューの座標空間へのマッピングを提供します。 スーパー・クラスを呼び出す前に、割当てが有効であることを確認できます。
        オーバーライド:
        modelToView、クラス: CompositeView
        パラメータ:
        pos - 変換対象の位置>= 0
        a - 描画するために割り当てられた領域
        b - Position.Bias.ForwardまたはPosition.Bias.Backwardのバイアス値
        戻り値:
        指定された位置のバウンディング・ボックス
        例外:
        BadLocationException - 指定された位置が、関連するドキュメント内の有効な位置を示さない場合
        関連項目:
        View.modelToView(int, java.awt.Shape, javax.swing.text.Position.Bias)
      • viewToModel

        public int viewToModel​(float x,
                               float y,
                               Shape a,
                               Position.Bias[] bias)
        ビューの座標空間からモデルの論理座標空間へのマッピングを提供します。
        オーバーライド:
        viewToModel、クラス: CompositeView
        パラメータ:
        x - 変換するビュー位置のx座標>= 0
        y - 変換するビュー位置のy座標>= 0
        a - 描画するために割り当てられた領域
        bias - Position.Bias.ForwardまたはPosition.Bias.Backward
        戻り値:
        指定されたビュー内の点をもっとも適切に表現するモデル内の位置>= 0
        関連項目:
        View.viewToModel(float, float, java.awt.Shape, javax.swing.text.Position.Bias[])
      • getAlignment

        public float getAlignment​(int axis)
        軸に沿ったこのビューの望ましいレイアウトを決定します。 この実装が提供するのは、タイルされた軸と直交する軸に並べられた整列位置に沿って子を配置するために必要な、全体的な整列です。 タイルされた軸は、中央揃え、すなわち0.5fにする必要があります。
        オーバーライド:
        getAlignment、クラス: View
        パラメータ:
        axis - View.X_AXISまたはView.Y_AXIS
        戻り値:
        適切な配置。0.0f以上で、1.0f以下。値の範囲は0.0から1.0で、0は起点への配置、1.0は起点から最大に離れた配置を表す。0.5は、ビューの中央への配置になる
        例外:
        IllegalArgumentException - 軸が無効な場合
      • getPreferredSpan

        public float getPreferredSpan​(int axis)
        このビューに適切なスパンを軸に沿って指定します。
        定義:
        getPreferredSpan、クラス: View
        パラメータ:
        axis - View.X_AXISまたはView.Y_AXIS
        戻り値:
        ビューの描画先のスパン>= 0。通常、ビューは返されたスパン内に描画されるよう求められるが、その保証はない。親はビューのサイズの変更や分割を行う可能性がある
        例外:
        IllegalArgumentException - 軸が無効な型
        関連項目:
        View.getPreferredSpan(int)
      • getMinimumSpan

        public float getMinimumSpan​(int axis)
        このビューの最小スパンを軸に沿って指定します。
        オーバーライド:
        getMinimumSpan、クラス: View
        パラメータ:
        axis - View.X_AXISまたはView.Y_AXIS
        戻り値:
        ビューの描画先のスパン>= 0。通常、ビューは返されたスパン内に描画されるよう求められるが、その保証はない。親はビューのサイズの変更や分割を行う可能性がある
        例外:
        IllegalArgumentException - 軸が無効な型
        関連項目:
        View.getPreferredSpan(int)
      • getMaximumSpan

        public float getMaximumSpan​(int axis)
        このビューの最大スパンを軸に沿って指定します。
        オーバーライド:
        getMaximumSpan、クラス: View
        パラメータ:
        axis - View.X_AXISまたはView.Y_AXIS
        戻り値:
        ビューの描画先のスパン>= 0。通常、ビューは返されたスパン内に描画されるよう求められるが、その保証はない。親はビューのサイズの変更や分割を行う可能性がある
        例外:
        IllegalArgumentException - 軸が無効な型
        関連項目:
        View.getPreferredSpan(int)
      • isAllocationValid

        protected boolean isAllocationValid()
        子への割当てが現在も有効かどうかを判定します。
        戻り値:
        割当てが現在も有効な場合はtrue
      • isBefore

        protected boolean isBefore​(int x,
                                   int y,
                                   Rectangle innerAlloc)
        ある点が、割り当てられた領域の前にあるかどうかを判定します。
        定義:
        isBefore、クラス: CompositeView
        パラメータ:
        x - X座標>= 0
        y - Y座標>= 0
        innerAlloc - 割り当てられた領域。インセットの内側の領域
        戻り値:
        点が領域の前にある場合はtrue、そうでない場合はfalse
      • isAfter

        protected boolean isAfter​(int x,
                                  int y,
                                  Rectangle innerAlloc)
        ある点が、割り当てられた領域のあとにあるかどうかを判定します。
        定義:
        isAfter、クラス: CompositeView
        パラメータ:
        x - X座標>= 0
        y - Y座標>= 0
        innerAlloc - 割り当てられた領域。インセットの内側の領域
        戻り値:
        点が領域のあとにある場合はtrue、そうでない場合はfalse
      • getViewAtPoint

        protected View getViewAtPoint​(int x,
                                      int y,
                                      Rectangle alloc)
        指定された座標の子ビューを取得します。
        定義:
        getViewAtPoint、クラス: CompositeView
        パラメータ:
        x - X座標>= 0
        y - Y座標>= 0
        alloc - 入口では親の内部割当て。出口で子の割当てに変更
        戻り値:
        ビュー
      • childAllocation

        protected void childAllocation​(int index,
                                       Rectangle alloc)
        子ビューに領域を割り当てます。
        定義:
        childAllocation、クラス: CompositeView
        パラメータ:
        index - 割り当てる子ビューのインデックス。0以上でgetViewCount()より小さい値
        alloc - 割り当てられる領域
      • layout

        protected void layout​(int width,
                              int height)
        ボックスのレイアウトを実行します。
        パラメータ:
        width - 幅(インセット内)>= 0
        height - 高さ(インセット内)>= 0
      • getWidth

        public int getWidth()
        ボックスの現在の幅を返します。 ボックスに割り当てられた最新の幅です。
        戻り値:
        ボックスの現在の幅
      • getHeight

        public int getHeight()
        ボックスの現在の高さを返します。 ボックスに割り当てられた最新の高さです。
        戻り値:
        ボックスの現在の高さ
      • layoutMajorAxis

        protected void layoutMajorAxis​(int targetSpan,
                                       int axis,
                                       int[] offsets,
                                       int[] spans)
        ボックスの主軸(つまり、それが表す軸)をレイアウトします。 レイアウトの結果(各子のオフセットとスパン)は、主軸に沿った子への割り当てを表す指定された配列に配置されなければいけません。
        パラメータ:
        targetSpan - ビューに指定されたスパンの合計。子をレイアウトするために使用される
        axis - レイアウトされる軸
        offsets - 各子ビューのビューの起点からのオフセット。これは戻り値であり、このメソッドの実装によって割り当てられる
        spans - 各子ビューのスパン。これは戻り値であり、このメソッドの実装によって割り当てられる
      • layoutMinorAxis

        protected void layoutMinorAxis​(int targetSpan,
                                       int axis,
                                       int[] offsets,
                                       int[] spans)
        ボックスの副軸(つまり、それが表す軸に直角の軸)をレイアウトします。 レイアウトの結果(各子のオフセットとスパン)は、副軸に沿った子への割り当てを表す指定された配列に配置されなければいけません。
        パラメータ:
        targetSpan - ビューに指定されたスパンの合計。子をレイアウトするために使用される
        axis - レイアウトされる軸
        offsets - 各子ビューのビューの起点からのオフセット。これは戻り値であり、このメソッドの実装によって割り当てられる
        spans - 各子ビューのスパン。これは戻り値であり、このメソッドの実装によって割り当てられる
      • calculateMajorAxisRequirements

        protected SizeRequirements calculateMajorAxisRequirements​(int axis,
                                                                  SizeRequirements r)
        主軸axisのサイズ要件を計算します。
        パラメータ:
        axis - 調査中の軸
        r - SizeRequirementsオブジェクト。nullの場合、1つ作成される
        戻り値:
        新しく初期化されたSizeRequirementsオブジェクト
        関連項目:
        SizeRequirements
      • calculateMinorAxisRequirements

        protected SizeRequirements calculateMinorAxisRequirements​(int axis,
                                                                  SizeRequirements r)
        副軸axisのサイズ要件を計算します。
        パラメータ:
        axis - 調査中の軸
        r - SizeRequirementsオブジェクト。nullの場合、1つ作成される
        戻り値:
        新しく初期化されたSizeRequirementsオブジェクト
        関連項目:
        SizeRequirements
      • baselineLayout

        protected void baselineLayout​(int targetSpan,
                                      int axis,
                                      int[] offsets,
                                      int[] spans)
        使用する領域の幅(または高さ)であるtargetSpanを指定したBoxViewにおける、各子ビューの位置とエクステントを計算します。
        パラメータ:
        targetSpan - ビューに指定されたスパンの合計。子をレイアウトするために使用される
        axis - 調査中の軸。View.X_AXISまたはView.Y_AXIS
        offsets - 空の配列。このメソッドによって各子ビューの位置を指定する値が割り当てられる
        spans - 空の配列。このメソッドによって各子ビューのエクステントを指定する値が割り当てられる
      • baselineRequirements

        protected SizeRequirements baselineRequirements​(int axis,
                                                        SizeRequirements r)
        各子ビューのサイズを調べて、このBoxViewのサイズ要件を計算します。
        パラメータ:
        axis - 調査中の軸
        r - SizeRequirementsオブジェクト。nullの場合、1つ作成される
        戻り値:
        新しく初期化されたSizeRequirementsオブジェクト
      • getOffset

        protected int getOffset​(int axis,
                                int childIndex)
        特定の子について、現在のレイアウトのオフセットを取得します。
        パラメータ:
        axis - 調査中の軸
        childIndex - 要求された子のインデックス
        戻り値:
        指定された子のオフセット(位置)
      • getSpan

        protected int getSpan​(int axis,
                              int childIndex)
        特定の子について、現在のレイアウトのスパンを取得します。
        パラメータ:
        axis - 調査中の軸
        childIndex - 要求された子のインデックス
        戻り値:
        指定された子のスパン(幅または高さ)
      • flipEastAndWestAtEnds

        protected boolean flipEastAndWestAtEnds​(int position,
                                                Position.Bias bias)
        次のビューをどの方向に配置するかを決定します。 インデックスnのViewが考慮されます。 通常は、EASTへのViewがインデックスn+1、WESTへのViewがインデックスn -1となるように、Viewは左から右へレイアウトされます。 双方向テキストなど一部の場合では、EASTへのViewをインデックスn+1ではなくインデックスn -1に、またはWESTへのViewをインデックスn - 1ではなくインデックスn+1にすることもできます。 この場合、このメソッドはtrueを返し、Viewが降順にレイアウトされていることを示します。 そうでない場合はfalseを返し、Viewが昇順にレイアウトされていることを示します。

        レシーバがY_AXISに沿ってViewを配置している場合、これはpositionbiasのレンダリングを担当するViewで同じメソッドを呼び出すことから値を返します。 そうでない場合は、falseを返します。

        オーバーライド:
        flipEastAndWestAtEnds、クラス: CompositeView
        パラメータ:
        position - モデルへの位置
        bias - Position.Bias.ForwardまたはPosition.Bias.Backward
        戻り値:
        positionbiasの描画を行うViewの周りにあるViewが降順にレイアウトされている場合はtrue。そうでない場合はfalse