モジュール 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
        コンボ・ボックスで現在選択されているアイテムを描画するために使用されます。 ポップアップ・レンダリングとは関係ありません。
      • popup

        protected ComboPopup popup
        ポップアップを表示するために使用されるComboPopupの実装。
      • editor

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      • BasicComboBoxUI

        public 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のインスタンス
        関連項目:
        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
        関連項目:
        JComboBox.setRenderer(javax.swing.ListCellRenderer<? super E>)
      • createEditor

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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