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

クラスBasicComboBoxUI

直系の既知のサブクラス:
MetalComboBoxUI, SynthComboBoxUI

public class BasicComboBoxUI extends ComboBoxUI
JComboBoxの基本UI実装です。

コンボボックスは、複合コンポーネント、つまり多くの単純なコンポーネントの集合です。 このクラスは、コンボボックスとコンボ・ボックス・モデル上のリスナーを作成し、管理します。 これらのリスナーは、コンボボックスの状態とプロパティにおける変更に応じて、ユーザー・インタフェースを更新します。

すべてのイベント処理は、createxxxListener()の各メソッド、および内部クラスを使用して作成されたリスナー・クラスにより処理されます。 このクラスの動作を変更するには、createxxxListener()の各メソッドをオーバーライドした上で、独自のイベント・リスナーを提供するか、このクラスで提供されているイベント・リスナーからサブクラス化します。

特定のアクションを追加するには、installKeyboardActionsをオーバーライドして、KeyStrokeバインディングに応じてアクションを追加します。 記事「キー・バインディングの使用方法」を参照してください。

  • フィールド詳細

    • comboBox

      protected JComboBox<Object> comboBox
      JComboBoxのインスタンス。
    • hasFocus

      protected boolean hasFocus
      このprotectedフィールドは実装固有のものです。 直接のアクセスやオーバーライドはしないでください。
    • listBox

      protected JList<Object> listBox
      このリストは、現在のアイテムをコンボ・ボックスに描画するためのものです。
    • currentValuePane

      protected CellRendererPane currentValuePane
      コンボ・ボックスで現在選択されているアイテムを描画するために使用されます。 ポップアップ・レンダリングとは関係ありません。
    • editor

      protected Component editor
      @{code ComboBoxEditor} が編集に使用するコンポーネント。
    • arrowButton

      protected JButton arrowButton
      ポップアップを起動する矢印ボタン。
    • keyListener

      protected KeyListener keyListener
      このprotectedフィールドは実装固有のものです。 直接のアクセスやオーバーライドはしないでください。 代わりに、リスナー作成メソッドをオーバーライドしてください。
      関連項目:
    • focusListener

      protected FocusListener focusListener
      このprotectedフィールドは実装固有のものです。 直接のアクセスやオーバーライドはしないでください。 代わりに、リスナー作成メソッドをオーバーライドしてください。
      関連項目:
    • propertyChangeListener

      protected PropertyChangeListener propertyChangeListener
      このprotectedフィールドは実装固有のものです。 直接のアクセスやオーバーライドはしないでください。 代わりに、リスナー作成メソッドをオーバーライドしてください。
      関連項目:
    • itemListener

      protected ItemListener itemListener
      このprotectedフィールドは実装固有のものです。 直接のアクセスやオーバーライドはしないでください。 代わりに、リスナー作成メソッドをオーバーライドしてください。
      関連項目:
    • popupMouseListener

      protected MouseListener popupMouseListener
      MouseListenerはイベントを待ち受けます。
    • popupMouseMotionListener

      protected MouseMotionListener popupMouseMotionListener
      MouseMotionListenerはイベントを待ち受けます。
    • popupKeyListener

      protected KeyListener popupKeyListener
      KeyListenerはイベントを待ち受けます。
    • listDataListener

      protected ListDataListener listDataListener
      このprotectedフィールドは実装固有のものです。 直接のアクセスやオーバーライドはしないでください。 代わりに、リスナー作成メソッドをオーバーライドしてください。
      関連項目:
    • isMinimumSizeDirty

      protected boolean isMinimumSizeDirty
      最小優先サイズを再計算するためのフラグ。
    • cachedMinimumSize

      protected Dimension cachedMinimumSize
      キャッシュされた最小優先サイズ。
    • squareButton

      protected boolean squareButton
      コンボボックス・ボタンを正方形にするべきかどうかを示します。 正方形の場合は、幅と高さが等しくなり、両方ともコンボから適切なイン・セットを引いた高さに設定されます。
      導入されたバージョン:
      1.7
    • padding

      protected Insets padding
      これらのイン・セットは、「選択された」項目をコンボボックスに配置し、ペイントする際に、セル・レンダラ周囲のパディングとして機能します。 これらのイン・セットは、セル・レンダラによって指定されたイン・セットに追加されます。
      導入されたバージョン:
      1.7
  • コンストラクタの詳細

    • BasicComboBoxUI

      public BasicComboBoxUI()
      BasicComboBoxUIを構築します。
  • メソッドの詳細

    • createUI

      public static ComponentUI createUI(JComponent c)
      BasicComboBoxUIの新しいインスタンスを構築します。
      パラメータ:
      c - コンポーネント
      戻り値:
      BasicComboBoxUIの新しいインスタンス
    • installDefaults

      protected void installDefaults()
      JComboBoxに、デフォルトのカラー、フォント、レンダラ、およびエディタをインストールします。
    • installListeners

      protected void installListeners()
      コンボボックスとそのモデルのためのリスナーを作成し、インストールします。 このメソッドは、UIインストール時に呼び出されます。
    • uninstallDefaults

      protected void uninstallDefaults()
      コンボボックスからデフォルトのカラー、フォント、レンダラ、およびエディタをアンインストールします。
    • uninstallListeners

      protected void uninstallListeners()
      インストールされたリスナーを、コンボボックスとそのモデルから削除します。 このメソッドで削除されるリスナーの数とタイプは、installListenersで追加されたものと同じであるべきです。
    • createPopup

      protected ComboPopup createPopup()
      コンボボックスのポップアップ部分を作成します。
      戻り値:
      ComboPopupのインスタンス
      関連項目:
    • createKeyListener

      protected KeyListener createKeyListener()
      コンボボックスに追加されるKeyListenerを作成します。 このメソッドがnullを返す場合、コンボボックスには追加されません。
      戻り値:
      KeyListenerのインスタンスまたはnull
    • createFocusListener

      protected FocusListener createFocusListener()
      コンボボックスに追加されるFocusListenerを作成します。 このメソッドがnullを返す場合、コンボボックスには追加されません。
      戻り値:
      FocusListenerのインスタンス、またはnull
    • createListDataListener

      protected ListDataListener createListDataListener()
      ComboBoxModelに追加されるリスト・データ・リスナーを作成します。 このメソッドがnullを返す場合、コンボ・ボックス・モデルには追加されません。
      戻り値:
      ListDataListenerのインスタンス、またはnull
    • createItemListener

      protected ItemListener createItemListener()
      コンボボックスに追加されるItemListenerを作成します。 このメソッドがnullを返す場合、コンボボックスには追加されません。

      サブクラスは、このメソッドをオーバーライドして、独自のItemEventハンドラのインスタンスを返すことができます。

      戻り値:
      ItemListenerのインスタンス、またはnull
    • createPropertyChangeListener

      protected PropertyChangeListener createPropertyChangeListener()
      コンボボックスに追加されるPropertyChangeListenerを作成します。 このメソッドがnullを返す場合、コンボボックスには追加されません。
      戻り値:
      PropertyChangeListenerのインスタンス、またはnull
    • createLayoutManager

      protected LayoutManager createLayoutManager()
      コンボボックスを構成するコンポーネントを管理するためのレイアウト・マネージャを作成します。
      戻り値:
      レイアウト・マネージャのインスタンス
    • createRenderer

      protected ListCellRenderer<Object> createRenderer()
      編集不可能なコンボボックスで使用されるデフォルト・レンダラを作成します。 レンダラがsetRendererで明示的に設定されていない場合だけ、デフォルト・レンダラが使用されます。
      戻り値:
      コンボボックスに使用されるListCellRender
      関連項目:
    • createEditor

      protected ComboBoxEditor createEditor()
      編集可能なコンボボックスで使用されるデフォルト・エディタを作成します。 エディタがsetEditorで明示的に設定されていない場合だけ、デフォルト・エディタが使用されます。
      戻り値:
      コンボボックスに使用されるComboBoxEditor
      関連項目:
    • installComponents

      protected void installComponents()
      集合コンボボックスを構成するコンポーネントを作成し、初期化します。 このメソッドは、UIインストール・プロセスの一部として呼び出されます。
    • uninstallComponents

      protected void uninstallComponents()
      コンボ・ボックスを構成する集合コンポーネントは登録解除され、初期化解除されます。 このメソッドは、UIアンインストール・プロセスの一部として呼び出されます。
    • addEditor

      public void addEditor()
      このpublicメソッドは実装固有のもので、privateであるべきです。呼び出しまたはオーバーライドしないでください。 特定のエディタを実装するには、カスタムのComboBoxEditorを作成してください。
      関連項目:
    • removeEditor

      public void removeEditor()
      このpublicメソッドは実装固有のもので、privateであるべきです。呼び出しまたはオーバーライドしないでください。
      関連項目:
    • configureEditor

      protected void configureEditor()
      protectedメソッドは実装固有のもので、privateであるべきです。呼び出しまたはオーバーライドしないでください。
      関連項目:
    • unconfigureEditor

      protected void unconfigureEditor()
      このprotectedメソッドは実装固有のもので、privateであるべきです。 呼び出しまたはオーバーライドしないでください。
      関連項目:
    • configureArrowButton

      public void configureArrowButton()
      このpublicメソッドは実装固有のもので、privateであるべきです。 呼び出しまたはオーバーライドしないでください。
      関連項目:
    • unconfigureArrowButton

      public void unconfigureArrowButton()
      このpublicメソッドは実装固有のもので、privateであるべきです。 呼び出しまたはオーバーライドしないでください。
      関連項目:
    • createArrowButton

      protected JButton createArrowButton()
      コンボボックスのポップアップ部分の表示または非表示の制御に使用されるボタンを作成します。
      戻り値:
      ポップアップ制御を表すボタン
    • isPopupVisible

      public boolean isPopupVisible(JComboBox<?> c)
      ポップアップが可視かどうかを判定します。
      定義:
      isPopupVisible、クラスComboBoxUI
      パラメータ:
      c - JComboBox
      戻り値:
      JComboBoxのポップアップが表示されている場合はtrue
    • setPopupVisible

      public void setPopupVisible(JComboBox<?> c, boolean v)
      ポップアップを非表示にします。
      定義:
      setPopupVisible、クラスComboBoxUI
      パラメータ:
      c - JComboBox
      v - ポップアップの可視性を決定するboolean
    • isFocusTraversable

      public boolean isFocusTraversable(JComboBox<?> c)
      JComboBoxが、フォーカスのトラバースが可能であるかどうかを判定します。 JComboBoxが編集可能な場合は、falseを返します。そうでない場合はtrueを返します。
      定義:
      isFocusTraversable、クラスComboBoxUI
      パラメータ:
      c - JComboBox
      戻り値:
      指定されたJComboBoxがトラバーサブルな場合はtrue
    • getMinimumSize

      public Dimension getMinimumSize(JComponent c)
      最小サイズは、ディスプレイ領域、インセットおよびボタンを足したサイズです。
      オーバーライド:
      getMinimumSize、クラスComponentUI
      パラメータ:
      c - 最小サイズが照会されるコンポーネント。この引数は通常無視されるが、UIオブジェクトがステートレスで、複数のコンポーネントで共有されている場合は使用されることがある
      戻り値:
      Dimensionオブジェクトまたはnull
      関連項目:
    • getBaseline

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

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

      protected boolean isNavigationKey(int keyCode)
      指定されたkeyCodeが、ナビゲーション用のキーにマップされるかどうかを返します。 これは、ナビゲーション・キー以外のキーのみを先打ちメカニズムに渡すことによって、キー入力を最適化するために使用されます。 サブクラスがナビゲーション・キーを変更する場合は、これをオーバーライドするべきです。
      パラメータ:
      keyCode - キー・コード
      戻り値:
      提供されたkeyCodeがナビゲーション・キーにマップされている場合はtrue
    • selectNextPossibleValue

      protected void selectNextPossibleValue()
      リストの次の項目を選択します。 現在選択されている項目が最後の項目である場合は、選択はそのままです。
    • selectPreviousPossibleValue

      protected void selectPreviousPossibleValue()
      リストから1つ前の項目を選択します。 現在選択されている項目が最初の項目である場合は、選択はそのままです。
    • toggleOpenClose

      protected void toggleOpenClose()
      ポップアップが表示されている場合は非表示にし、非表示になっている場合は表示します。
    • rectangleForCurrentValue

      protected Rectangle rectangleForCurrentValue()
      現在選択されている項目を描画するために予約されている領域を返します。
      戻り値:
      現在選択されているアイテムを描画するために予約されている領域
    • getInsets

      protected Insets getInsets()
      JComboBoxからイン・セットを取得します。
      戻り値:
      インセット
    • paintCurrentValue

      public void paintCurrentValue(Graphics g, Rectangle bounds, boolean hasFocus)
      現在選択されている項目をペイントします。
      パラメータ:
      g - Graphicsのインスタンス
      bounds - レンダリングする境界矩形
      hasFocus - 焦点が合っている
    • paintCurrentValueBackground

      public void paintCurrentValueBackground(Graphics g, Rectangle bounds, boolean hasFocus)
      現在選択されている項目のバックグラウンドをペイントします。
      パラメータ:
      g - Graphicsのインスタンス
      bounds - レンダリングする境界矩形
      hasFocus - 焦点が合っている
    • getDefaultSize

      protected Dimension getDefaultSize()
      現在のレンダラとフォントを使用するコンボボックスの、空のディスプレイ領域のデフォルト・サイズを返します。
      戻り値:
      空のディスプレイ領域のサイズ
      関連項目:
    • getDisplaySize

      protected Dimension getDisplaySize()
      ディスプレイ領域の、計算されたサイズを返します。 ディスプレイ領域は、選択した項目が表示されるコンボボックスの一部です。 プロトタイプ・ディスプレイ値が設定されている場合、このメソッドはこれを使用します。

      項目数の多いコンボボックスについては、プロトタイプ・ディスプレイ値を使用して、ディスプレイ・サイズの計算を大幅に速めることをお勧めします。

      戻り値:
      コンボボックスの項目から計算される、ディスプレイ領域のサイズ
      関連項目:
    • getSizeForComponent

      protected Dimension getSizeForComponent(Component comp)
      セル・レンダラとして使用された場合のコンポーネントのサイズを返します。
      パラメータ:
      comp - チェックするComponent
      戻り値:
      コンポーネントのサイズ
      導入されたバージョン:
      1.7
    • installKeyboardActions

      protected void installKeyboardActions()
      JComboBoxにキーボード・アクションを追加します。 EnterキーおよびEscキーについてのアクションは、すでに提供されています。 必要に応じてアクションを追加してください。
    • uninstallKeyboardActions

      protected void uninstallKeyboardActions()
      フォーカスInputMapおよびActionMapを削除します。