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

クラスComponentUI

java.lang.Object
javax.swing.plaf.ComponentUI
直系の既知のサブクラス:
ButtonUI, ColorChooserUI, ComboBoxUI, DesktopIconUI, DesktopPaneUI, FileChooserUI, InternalFrameUI, LabelUI, LayerUI, ListUI, MenuBarUI, OptionPaneUI, PanelUI, PopupMenuUI, ProgressBarUI, RootPaneUI, ScrollBarUI, ScrollPaneUI, SeparatorUI, SliderUI, SpinnerUI, SplitPaneUI, TabbedPaneUI, TableHeaderUI, TableUI, TextUI, ToolBarUI, ToolTipUI, TreeUI, ViewportUI

public abstract class ComponentUI
extends Object
Swingのプラグイン可能なLook & Feelアーキテクチャに含まれるすべてのUI委譲オブジェクトの基底クラスです。 SwingコンポーネントのUI委譲オブジェクトはLook & Feelに依存するコンポーネントの側面の実装を扱います。 JComponentクラスは、インストールしたLook & Feelによって異なる可能性があるオペレーション(ペイント、レイアウトの計算など)を委譲するために、このクラスからメソッドを呼び出します。 クライアントのプログラムは、直接このクラスのメソッドを呼び出すべきではありません。
関連項目:
JComponent, UIManager
  • コンストラクタの詳細

    • ComponentUI

      public ComponentUI()
      唯一のコンストラクタです。 (サブクラスのコンストラクタによる呼出し用で、通常は暗黙的に呼び出されます。)
  • メソッドの詳細

    • installUI

      public void installUI​(JComponent c)
      指定されたコンポーネントをLook & Feelに応じて適切に構成します。 このメソッドは、ComponentUIインスタンスが、指定されたコンポーネントのUI委譲としてインストールされているときに呼び出されます。 このメソッドは、次を含むLook & Feel用のコンポーネントを完全に構成するべきです。
      1. カラー、フォント、ボーダー、アイコン、不透明さなどのデフォルト・プロパティ値をコンポーネントにインストールする。 可能な場合は常に、クライアント・プログラムによって初期化されたプロパティの値をオーバーライドするべきではない
      2. 必要に応じて、コンポーネントにLayoutManagerをインストールする。
      3. 必要なサブコンポーネントを作成して、コンポーネントに追加する。
      4. イベント・リスナーを作成して、コンポーネントにインストールする。
      5. コンポーネントのプロパティの変更を適切に検出し、応答するために、PropertyChangeListenerを作成してコンポーネントにインストールする。
      6. キーボードUI (ニーモニック、トラバーサルなど)を、コンポーネントにインストールする。
      7. 適切なインスタンスのデータを初期化する。
      パラメータ:
      c - UI委譲がインストールされるコンポーネント
      関連項目:
      uninstallUI(javax.swing.JComponent), JComponent.setUI(javax.swing.plaf.ComponentUI), JComponent.updateUI()
    • uninstallUI

      public void uninstallUI​(JComponent c)
      installUI時に、指定されたコンポーネントに対して行われた構成を取り消します。 このメソッドは、このUIComponentインスタンスが、指定されたコンポーネントのUI委譲として削除されているときに呼び出されます。 このメソッドは、installUIによって実行された構成を元に戻すべきです。この場合、JComponentインスタンスをクリーンな状態(余分なリスナーや、Look & Feel固有のプロパティ・オブジェクトが残らないように)にするよう十分注意してください。 手順には次のものが含まれるべきです。
      1. UIとして設定されたすべてのボーダーを、コンポーネントから削除する。
      2. UIとして設定されたすべてのレイアウト・マネージャを、コンポーネントから削除する。
      3. UIとして追加されたすべてのサブコンポーネントを、コンポーネントから削除する。
      4. UIとして追加されたすべてのイベント/プロパティ・リスナーを、コンポーネントから削除する。
      5. UIとしてインストールされたすべてのキーボードUIを、コンポーネントから削除する。
      6. GCの対象になるように、割り当てられたすべてのインスタンス・データ・オブジェクトをnullに設定する。
      パラメータ:
      c - このUI委譲が削除されるコンポーネント。この引数は通常無視されるが、UIオブジェクトがステートレスで、複数のコンポーネントで共有されている場合は使用されることがある
      関連項目:
      installUI(javax.swing.JComponent), JComponent.updateUI()
    • paint

      public void paint​(Graphics g, JComponent c)
      指定されたコンポーネントをLook & Feelに合わせてペイントします。 このメソッドは、指定されたコンポーネントがペイントされるときにComponentUI.updateメソッドから呼び出されます。 サブクラスは、このメソッドをオーバーライドして、指定されたGraphicsオブジェクトを使ってコンポーネントの内容を描画するべきです。
      パラメータ:
      g - ペイント対象のGraphicsコンテキスト
      c - ペイントされるコンポーネント。この引数は通常無視されるが、UIオブジェクトがステートレスで、複数のコンポーネントで共有されている場合は使用されることがある
      関連項目:
      update(java.awt.Graphics, javax.swing.JComponent)
    • update

      public void update​(Graphics g, JComponent c)
      指定されたコンポーネントをペイントする時間になったことを、このUI委譲に通知します。 このメソッドは、指定されたコンポーネントがペイントされるときにJComponentによって呼び出されます。

      デフォルトでは、このメソッドは、指定されたコンポーネントのopaqueプロパティがtrueの場合に、コンポーネントをそのバックグラウンド・カラーで塗りつぶし、すぐにpaintを呼び出します。 一般的に、このメソッドはサブクラスによってオーバーライドする必要はありません。すべてのLook & Feel描画コードはpaintメソッド内に存在する必要があります。

      パラメータ:
      g - ペイント対象のGraphicsコンテキスト
      c - ペイントされるコンポーネント。この引数は通常無視されるが、UIオブジェクトがステートレスで、複数のコンポーネントで共有されている場合は使用されることがある
      関連項目:
      paint(java.awt.Graphics, javax.swing.JComponent), JComponent.paintComponent(java.awt.Graphics)
    • getPreferredSize

      public Dimension getPreferredSize​(JComponent c)
      指定されたコンポーネントの、Look & Feelに適した推奨サイズを返します。 nullが返された場合、適切なサイズは代わりにコンポーネントのレイアウト・マネージャによって計算されます(これは、特定のレイアウト・マネージャをインストールしてあるコンポーネントの場合に推奨する方法です)。 このメソッドのデフォルト実装はnullを返します。
      パラメータ:
      c - 適切なサイズが照会されるコンポーネント。この引数は通常無視されるが、UIオブジェクトがステートレスで、複数のコンポーネントで共有されている場合は使用されることがある
      戻り値:
      Look&Feelに適した指定されたコンポーネントの優先サイズを含むDimensionオブジェクト
      関連項目:
      JComponent.getPreferredSize(), LayoutManager.preferredLayoutSize(java.awt.Container)
    • getMinimumSize

      public Dimension getMinimumSize​(JComponent c)
      指定されたコンポーネントの、Look & Feelに適した最小サイズを返します。 nullが返された場合、最小サイズは代わりにコンポーネントのレイアウト・マネージャによって計算されます(これは、特定のレイアウト・マネージャをインストールしてあるコンポーネントの場合に推奨する方法です)。 このメソッドのデフォルト実装はgetPreferredSizeを呼び出して、その値を返します。
      パラメータ:
      c - 最小サイズが照会されるコンポーネント。この引数は通常無視されるが、UIオブジェクトがステートレスで、複数のコンポーネントで共有されている場合は使用されることがある
      戻り値:
      Dimensionオブジェクトまたはnull
      関連項目:
      JComponent.getMinimumSize(), LayoutManager.minimumLayoutSize(java.awt.Container), getPreferredSize(javax.swing.JComponent)
    • getMaximumSize

      public Dimension getMaximumSize​(JComponent c)
      指定されたコンポーネントの、Look & Feelに適した最大サイズを返します。 nullが返された場合、最大サイズは代わりにコンポーネントのレイアウト・マネージャによって計算されます(これは、特定のレイアウト・マネージャをインストールしてあるコンポーネントの場合に推奨する方法です)。 このメソッドのデフォルト実装はgetPreferredSizeを呼び出して、その値を返します。
      パラメータ:
      c - 最大サイズが照会されるコンポーネント。この引数は通常無視されるが、UIオブジェクトがステートレスで、複数のコンポーネントで共有されている場合は使用されることがある
      戻り値:
      Dimensionオブジェクトまたはnull
      関連項目:
      JComponent.getMaximumSize(), LayoutManager2.maximumLayoutSize(java.awt.Container)
    • contains

      public boolean contains​(JComponent c, int x, int y)
      指定されたx,yの位置が、指定されたコンポーネントのLook & Feel定義の形状内にある場合は、trueを返します。xyは、指定されたコンポーネントの座標体系を基準に定義されます。 コンポーネントのboundsは矩形に制限されますが、このメソッドはヒットの検出のためにこれらの境界内で矩形以外の形状を定義する方法を提供します。
      パラメータ:
      c - x,yの位置が照会されるコンポーネント。この引数は通常無視されるが、UIオブジェクトがステートレスで、複数のコンポーネントに共有されている場合は使用されることがある
      x - 点のx座標
      y - 点のy座標
      戻り値:
      true指定されたx,yのロケーションが、指定されたコンポーネントのルック・アンド・フィールの定義されたシェイプに含まれている場合
      関連項目:
      JComponent.contains(int, int), Component.contains(int, int)
    • createUI

      public static ComponentUI createUI​(JComponent c)
      指定されたコンポーネントのUI委譲のインスタンスを返します。 各サブクラスは、それ自体のstatic createUIメソッドを提供して、そのUI委譲のサブクラスのインスタンスを返す必要があります。 UI委譲のサブクラスがステートレスの場合、複数のコンポーネントに共有されるインスタンスを返します。 UI委譲がステートフルの場合、コンポーネントごとに新しいインスタンスを返す必要があります。 このメソッドは呼び出してはいけないため、そのデフォルト実装はエラーをスローします。
      パラメータ:
      c - UIデリゲートを作成するためのJComponent
      戻り値:
      cComponentUIオブジェクト
    • getBaseline

      public int getBaseline​(JComponent c, int width, int height)
      ベースラインを返します。 ベースラインは、コンポーネントの上端から測定されます。 このメソッドは、主にLayoutManagerがそのベースラインに沿ってコンポーネントを配置するために使用します。 戻り値が0より小さい場合、このコンポーネントのベースラインは適切ではありません。LayoutManagerは、そのベースライン上にこのコンポーネントを配置しないでください。

      このメソッドは -1を返します。 意味のあるベースラインを持つサブクラスで適切にオーバーライドするべきです。

      パラメータ:
      c - ベースラインが要求されるJComponent
      width - ベースラインを取得する幅
      height - ベースラインを取得する高さ
      戻り値:
      ベースラインまたは0より小さい値(適切なベースラインがないことを示す)
      例外:
      NullPointerException - cnullである場合
      IllegalArgumentException - 幅または高さが0より小さい場合
      導入されたバージョン:
      1.6
      関連項目:
      JComponent.getBaseline(int,int)
    • getBaselineResizeBehavior

      public Component.BaselineResizeBehavior getBaselineResizeBehavior​(JComponent c)
      サイズの変化に合わせてコンポーネントのベースラインがどのように変化するかを示す列挙を返します。 このメソッドは、主にレイアウト・マネージャとGUIビルダーで使用されます。

      このメソッドはBaselineResizeBehavior.OTHERを返します。 ベースラインをサポートするサブクラスで、適切にオーバーライドするべきです。

      パラメータ:
      c - ベースラインのサイズ変更の動作を返すJComponent
      戻り値:
      コンポーネント・サイズの変化に合わせてベースラインがどのように変化するかを示す列挙
      例外:
      NullPointerException - cnullである場合
      導入されたバージョン:
      1.6
      関連項目:
      JComponent.getBaseline(int, int)
    • getAccessibleChildrenCount

      public int getAccessibleChildrenCount​(JComponent c)
      オブジェクト内のアクセシビリティ対応の子の数を返します。 このオブジェクトのすべての子がAccessibleインタフェースを実装している場合、このメソッドはこのオブジェクトの子の数を返すべきです。 UIが、画面上にコンポーネントとして表示される領域は提供するが、実際のコンポーネントがこの領域を提供するために使用されない場合、UIにおいて必要に応じてこのメソッドをオーバーライドできます。 ノート: バージョン1.3以降は、このメソッドの代わりにComponent.AccessibleAWTComponent.getAccessibleChildrenCount()を呼び出すことをお勧めします。
      パラメータ:
      c - アクセス可能な子の数を取得するJComponent
      戻り値:
      オブジェクト内のアクセシビリティ対応の子の数
      関連項目:
      getAccessibleChild(javax.swing.JComponent, int)
    • getAccessibleChild

      public Accessible getAccessibleChild​(JComponent c, int i)
      オブジェクトのi番目のAccessibleの子を返します。 UIが、画面上にコンポーネントとして表示される領域は提供するが、この領域を提供するのに実際のコンポーネントを使用しない場合、UIは必要に応じてこのメソッドをオーバーライドします。

      ノート: バージョン1.3以降は、このメソッドの代わりにComponent.AccessibleAWTComponent.getAccessibleChild()を呼び出すことをお勧めします。

      パラメータ:
      c - 子オブジェクトを取得するためのJComponent
      i - 子のゼロから始まるインデックス
      戻り値:
      オブジェクトのi番目のAccessibleの子
      関連項目:
      getAccessibleChildrenCount(javax.swing.JComponent)