public class BasicComboBoxUI extends ComboBoxUI
コンボボックスは、複合コンポーネント、つまり多くの単純なコンポーネントの集合です。このクラスは、コンボボックスとコンボボックスモデル上のリスナーを作成し、管理します。これらのリスナーは、コンボボックスの状態とプロパティーにおける変更に応じて、ユーザーインタフェースを更新します。
すべてのイベント処理は、createxxxListener()
の各メソッド、および内部クラスを使用して作成されたリスナークラスにより処理されます。このクラスの動作を変更するには、createxxxListener()
の各メソッドをオーバーライドした上で、独自のイベントリスナーを提供するか、このクラスで提供されているイベントリスナーからサブクラス化します。
特定のアクションを追加するには、installKeyboardActions
をオーバーライドして、KeyStroke バインディングに応じてアクションを追加します。「The Swing Connection」の「Keyboard Bindings in Swing」の項目を参照してください。
修飾子と型 | クラスと説明 |
---|---|
class |
BasicComboBoxUI.ComboBoxLayoutManager
このレイアウトマネージャーは、コンボボックスの「標準」レイアウトを扱います。
|
class |
BasicComboBoxUI.FocusHandler
フォーカスが失われたときに、このリスナーはポップアップを隠します。
|
class |
BasicComboBoxUI.ItemHandler
このリスナーは、コンボボックスの選択の変更を監視します。
|
class |
BasicComboBoxUI.KeyHandler
このリスナーは、キーイベントがナビゲーションキーでないかどうかを確認します。
|
class |
BasicComboBoxUI.ListDataHandler
このリスナーは、
ComboBoxModel 内での変更を監視します。 |
class |
BasicComboBoxUI.PropertyChangeHandler
このリスナーは、コンボボックス内で変更されたバウンドプロパティーを監視します。
|
修飾子と型 | フィールドと説明 |
---|---|
protected JButton |
arrowButton |
protected Dimension |
cachedMinimumSize |
protected JComboBox |
comboBox |
protected CellRendererPane |
currentValuePane |
protected Component |
editor |
protected FocusListener |
focusListener
この protected フィールドは実装固有のものです。
|
protected boolean |
hasFocus
この protected フィールドは実装固有のものです。
|
protected boolean |
isMinimumSizeDirty |
protected ItemListener |
itemListener
この protected フィールドは実装固有のものです。
|
protected KeyListener |
keyListener
この protected フィールドは実装固有のものです。
|
protected JList |
listBox |
protected ListDataListener |
listDataListener
この protected フィールドは実装固有のものです。
|
protected Insets |
padding
これらのインセットは、「選択された」項目をコンボボックスに配置し、ペイントする際に、セルレンダラ周囲のパディングとして機能します。
|
protected ComboPopup |
popup |
protected KeyListener |
popupKeyListener |
protected MouseListener |
popupMouseListener |
protected MouseMotionListener |
popupMouseMotionListener |
protected PropertyChangeListener |
propertyChangeListener
この protected フィールドは実装固有のものです。
|
protected boolean |
squareButton
コンボボックスボタンを正方形にするべきかどうかを示します。
|
コンストラクタと説明 |
---|
BasicComboBoxUI() |
修飾子と型 | メソッドと説明 |
---|---|
void |
addEditor()
この public メソッドは実装固有のもので、private であるべきです。
|
void |
configureArrowButton()
この public メソッドは実装固有のもので、private であるべきです。
|
protected void |
configureEditor()
この protected メソッドは実装固有のもので、private であるべきです。
|
protected JButton |
createArrowButton()
コンボボックスのポップアップ部分の表示または非表示の制御に使用されるボタンを作成します。
|
protected ComboBoxEditor |
createEditor()
編集可能なコンボボックスで使用されるデフォルトエディタを作成します。
|
protected FocusListener |
createFocusListener()
コンボボックスに追加される
FocusListener を作成します。 |
protected ItemListener |
createItemListener()
コンボボックスに追加される
ItemListener を作成します。 |
protected KeyListener |
createKeyListener()
コンボボックスに追加される
KeyListener を作成します。 |
protected LayoutManager |
createLayoutManager()
コンボボックスを構成するコンポーネントを管理するためのレイアウトマネージャーを作成します。
|
protected ListDataListener |
createListDataListener()
ComboBoxModel に追加されるリストデータリスナーを作成します。 |
protected ComboPopup |
createPopup()
コンボボックスのポップアップ部分を作成します。
|
protected PropertyChangeListener |
createPropertyChangeListener()
コンボボックスに追加される
PropertyChangeListener を作成します。 |
protected ListCellRenderer |
createRenderer()
編集不可能なコンボボックスで使用されるデフォルトレンダラを作成します。
|
static ComponentUI |
createUI(JComponent c) |
Accessible |
getAccessibleChild(JComponent c, int i)
オブジェクトの
i 番目の Accessible の子を返します。 |
int |
getAccessibleChildrenCount(JComponent c)
オブジェクト内のアクセシビリティー対応の子の数を返します。
|
int |
getBaseline(JComponent c, int width, int height)
ベースラインを返します。
|
Component.BaselineResizeBehavior |
getBaselineResizeBehavior(JComponent c)
サイズの変化に合わせてコンポーネントのベースラインがどのように変化するかを示す列挙を返します。
|
protected Dimension |
getDefaultSize()
現在のレンダラとフォントを使用するコンボボックスの、空のディスプレイ領域のデフォルトサイズを返します。
|
protected Dimension |
getDisplaySize()
ディスプレイ領域の、計算されたサイズを返します。
|
protected Insets |
getInsets()
JComboBox からインセットを取得します。
|
Dimension |
getMaximumSize(JComponent c)
指定されたコンポーネントの、Look & Feel に適した最大サイズを返します。
|
Dimension |
getMinimumSize(JComponent c)
最小サイズは、ディスプレイ領域、インセット、およびボタンを足したサイズです。
|
Dimension |
getPreferredSize(JComponent c)
指定されたコンポーネントの、Look & Feel に適した推奨サイズを返します。
|
protected Dimension |
getSizeForComponent(Component comp)
セルレンダラとして使用された場合のコンポーネントのサイズを返します。
|
protected void |
installComponents()
集合コンボボックスを構成するコンポーネントを作成し、初期化します。
|
protected void |
installDefaults()
JComboBox に、デフォルトのカラー、フォント、レンダラ、およびエディタをインストールします。
|
protected void |
installKeyboardActions()
JComboBox にキーボードアクションを追加します。
|
protected void |
installListeners()
コンボボックスとそのモデルのためのリスナーを作成し、インストールします。
|
void |
installUI(JComponent c)
指定されたコンポーネントを Look & Feel に応じて適切に構成します。
|
boolean |
isFocusTraversable(JComboBox c)
JComboBox が、フォーカスのトラバースが可能であるかどうかを判定します。
|
protected boolean |
isNavigationKey(int keyCode)
指定された keyCode が、ナビゲーション用のキーにマップされるかどうかを返します。
|
boolean |
isPopupVisible(JComboBox c)
ポップアップが可視かどうかを判定します。
|
void |
paint(Graphics g, JComponent c)
指定されたコンポーネントを Look &Feel に合わせてペイントします。
|
void |
paintCurrentValue(Graphics g, Rectangle bounds, boolean hasFocus)
現在選択されている項目をペイントします。
|
void |
paintCurrentValueBackground(Graphics g, Rectangle bounds, boolean hasFocus)
現在選択されている項目のバックグラウンドをペイントします。
|
protected Rectangle |
rectangleForCurrentValue()
現在選択されている項目を描画するために予約されている領域を返します。
|
void |
removeEditor()
この public メソッドは実装固有のもので、private であるべきです。
|
protected void |
selectNextPossibleValue()
リストの次の項目を選択します。
|
protected void |
selectPreviousPossibleValue()
リストから 1 つ前の項目を選択します。
|
void |
setPopupVisible(JComboBox c, boolean v)
ポップアップを非表示にします。
|
protected void |
toggleOpenClose()
ポップアップが表示されている場合は非表示にし、非表示になっている場合は表示します。
|
void |
unconfigureArrowButton()
この public メソッドは実装固有のもので、private であるべきです。
|
protected void |
unconfigureEditor()
この protected メソッドは実装固有のもので、private であるべきです。
|
protected void |
uninstallComponents()
コンボボックスを構成する集合コンポーネントは登録解除され、初期化解除されます。
|
protected void |
uninstallDefaults()
コンボボックスからデフォルトのカラー、フォント、レンダラ、およびエディタをアンインストールします。
|
protected void |
uninstallKeyboardActions()
フォーカス InputMap および ActionMap を削除します。
|
protected void |
uninstallListeners()
インストールされたリスナーを、コンボボックスとそのモデルから削除します。
|
void |
uninstallUI(JComponent c)
installUI 時に、指定されたコンポーネントに対して行われた構成を取り消します。 |
contains, update
protected JComboBox comboBox
protected boolean hasFocus
protected JList listBox
protected CellRendererPane currentValuePane
protected ComboPopup popup
protected Component editor
protected JButton arrowButton
protected KeyListener keyListener
createKeyListener()
protected FocusListener focusListener
protected PropertyChangeListener propertyChangeListener
protected ItemListener itemListener
createItemListener()
protected MouseListener popupMouseListener
protected MouseMotionListener popupMouseMotionListener
protected KeyListener popupKeyListener
protected ListDataListener listDataListener
protected boolean isMinimumSizeDirty
protected Dimension cachedMinimumSize
protected boolean squareButton
protected Insets padding
public static ComponentUI createUI(JComponent c)
public void installUI(JComponent c)
ComponentUI
ComponentUI
インスタンスが、指定されたコンポーネントの UI 委譲としてインストールされているときに呼び出されます。このメソッドは、次を含む Look & Feel 用のコンポーネントを完全に構成するべきです。
LayoutManager
をインストールする。
PropertyChangeListener
を作成してコンポーネントにインストールする。
installUI
、クラス: ComponentUI
c
- UI 委譲がインストールされるコンポーネントComponentUI.uninstallUI(javax.swing.JComponent)
, JComponent.setUI(javax.swing.plaf.ComponentUI)
, JComponent.updateUI()
public void uninstallUI(JComponent c)
ComponentUI
installUI
時に、指定されたコンポーネントに対して行われた構成を取り消します。このメソッドは、この UIComponent
インスタンスが、指定されたコンポーネントの UI 委譲として削除されているときに呼び出されます。このメソッドは、installUI
によって実行された構成を元に戻すべきです。この場合、JComponent
インスタンスをクリーンな状態 (余分なリスナーや、Look & Feel 固有のプロパティーオブジェクトが残らないように) にするよう十分注意してください。手順には次のものが含まれるべきです。
uninstallUI
、クラス: ComponentUI
c
- この UI 委譲が削除されるコンポーネント。この引数は通常無視されるが、UI オブジェクトがステートレスで、複数のコンポーネントで共有されている場合は使用されることがあるComponentUI.installUI(javax.swing.JComponent)
, JComponent.updateUI()
protected void installDefaults()
protected void installListeners()
protected void uninstallDefaults()
protected void uninstallListeners()
installListeners
で追加されたものと同じであるべきです。protected ComboPopup createPopup()
ComboPopup
のインスタンスComboPopup
protected KeyListener createKeyListener()
KeyListener
を作成します。このメソッドが null を返す場合、コンボボックスには追加されません。KeyListener
のインスタンスまたは nullprotected FocusListener createFocusListener()
FocusListener
を作成します。このメソッドが null を返す場合、コンボボックスには追加されません。FocusListener
のインスタンス、または nullprotected ListDataListener createListDataListener()
ComboBoxModel
に追加されるリストデータリスナーを作成します。このメソッドが null を返す場合、コンボボックスモデルには追加されません。ListDataListener
のインスタンス、または nullprotected ItemListener createItemListener()
ItemListener
を作成します。このメソッドが null を返す場合、コンボボックスには追加されません。
サブクラスは、このメソッドをオーバーライドして、独自の ItemEvent ハンドラのインスタンスを返すことができます。
ItemListener
のインスタンス、または nullprotected PropertyChangeListener createPropertyChangeListener()
PropertyChangeListener
を作成します。このメソッドが null を返す場合、コンボボックスには追加されません。PropertyChangeListener
のインスタンス、または nullprotected LayoutManager createLayoutManager()
protected ListCellRenderer createRenderer()
setRenderer
で明示的に設定されていない場合だけ、デフォルトレンダラが使用されます。ListCellRender
JComboBox.setRenderer(javax.swing.ListCellRenderer<? super E>)
protected ComboBoxEditor createEditor()
setEditor
で明示的に設定されていない場合だけ、デフォルトエディタが使用されます。ComboBoxEditor
JComboBox.setEditor(javax.swing.ComboBoxEditor)
protected void installComponents()
protected void uninstallComponents()
public void addEditor()
ComboBoxEditor
を作成してください。public void removeEditor()
addEditor()
protected void configureEditor()
addEditor()
protected void unconfigureEditor()
addEditor()
public void configureArrowButton()
createArrowButton()
public void unconfigureArrowButton()
createArrowButton()
protected JButton createArrowButton()
public boolean isPopupVisible(JComboBox c)
isPopupVisible
、クラス: ComboBoxUI
public void setPopupVisible(JComboBox c, boolean v)
setPopupVisible
、クラス: ComboBoxUI
public boolean isFocusTraversable(JComboBox c)
isFocusTraversable
、クラス: ComboBoxUI
public void paint(Graphics g, JComponent c)
ComponentUI
ComponentUI.update
メソッドから呼び出されます。サブクラスは、このメソッドをオーバーライドして、指定された Graphics
オブジェクトを使ってコンポーネントの内容を描画するべきです。paint
、クラス: ComponentUI
g
- ペイント対象の Graphics
コンテキストc
- ペイントされるコンポーネント。この引数は通常無視されるが、UI オブジェクトがステートレスで、複数のコンポーネントで共有されている場合は使用されることがあるComponentUI.update(java.awt.Graphics, javax.swing.JComponent)
public Dimension getPreferredSize(JComponent c)
ComponentUI
null
が返された場合、適切なサイズは代わりにコンポーネントのレイアウトマネージャーによって計算されます (これは、特定のレイアウトマネージャーをインストールしてあるコンポーネントの場合に推奨する方法です)。このメソッドのデフォルト実装は null
を返します。getPreferredSize
、クラス: ComponentUI
c
- 推奨サイズが照会されるコンポーネント。この引数は通常無視されるが、UI オブジェクトがステートレスで、複数のコンポーネントで共有されている場合は使用されることがあるJComponent.getPreferredSize()
, LayoutManager.preferredLayoutSize(java.awt.Container)
public Dimension getMinimumSize(JComponent c)
getMinimumSize
、クラス: ComponentUI
c
- 最小サイズが照会されるコンポーネント。この引数は通常無視されるが、UI オブジェクトがステートレスで、複数のコンポーネントで共有されている場合は使用されることがあるDimension
オブジェクトまたは null
JComponent.getMinimumSize()
, LayoutManager.minimumLayoutSize(java.awt.Container)
, ComponentUI.getPreferredSize(javax.swing.JComponent)
public Dimension getMaximumSize(JComponent c)
ComponentUI
null
が返された場合、最大サイズは代わりにコンポーネントのレイアウトマネージャーによって計算されます (これは、特定のレイアウトマネージャーをインストールしてあるコンポーネントの場合に推奨する方法です)。このメソッドのデフォルト実装は getPreferredSize
を呼び出して、その値を返します。getMaximumSize
、クラス: ComponentUI
c
- 最大サイズが照会されるコンポーネント。この引数は通常無視されるが、UI オブジェクトがステートレスで、複数のコンポーネントで共有されている場合は使用されることがあるDimension
オブジェクトまたは null
JComponent.getMaximumSize()
, LayoutManager2.maximumLayoutSize(java.awt.Container)
public int getBaseline(JComponent c, int width, int height)
getBaseline
、クラス: ComponentUI
c
- ベースラインが要求される JComponent
width
- ベースラインを取得する幅height
- ベースラインを取得する高さNullPointerException
- c
が null
である場合IllegalArgumentException
- 幅または高さが 0 より小さい場合JComponent.getBaseline(int, int)
public Component.BaselineResizeBehavior getBaselineResizeBehavior(JComponent c)
getBaselineResizeBehavior
、クラス: ComponentUI
c
- ベースラインのサイズ変更の動作を返す JComponent
NullPointerException
- c
が null
である場合JComponent.getBaseline(int, int)
public int getAccessibleChildrenCount(JComponent c)
ComponentUI
Accessible
インタフェースを実装している場合、このメソッドはこのオブジェクトの子の数を返すべきです。UI が、画面上にコンポーネントとして表示される領域は提供するが、実際のコンポーネントがこの領域を提供するために使用されない場合、UI において必要に応じてこのメソッドをオーバーライドできます。
注:バージョン 1.3 以降は、このメソッドの代わりに Component.AccessibleAWTComponent.getAccessibleChildrenCount()
を呼び出すことをお勧めします。getAccessibleChildrenCount
、クラス: ComponentUI
ComponentUI.getAccessibleChild(javax.swing.JComponent, int)
public Accessible getAccessibleChild(JComponent c, int i)
ComponentUI
i
番目の Accessible
の子を返します。UI が、画面上にコンポーネントとして表示される領域は提供するが、この領域を提供するのに実際のコンポーネントを使用しない場合、UI は必要に応じてこのメソッドをオーバーライドします。
注:バージョン 1.3 以降は、このメソッドの代わりに Component.AccessibleAWTComponent.getAccessibleChild()
を呼び出すことをお勧めします。
getAccessibleChild
、クラス: ComponentUI
i
- 子のゼロから始まるインデックスi
番目の Accessible
の子ComponentUI.getAccessibleChildrenCount(javax.swing.JComponent)
protected boolean isNavigationKey(int keyCode)
protected void selectNextPossibleValue()
protected void selectPreviousPossibleValue()
protected void toggleOpenClose()
protected Rectangle rectangleForCurrentValue()
protected Insets getInsets()
public void paintCurrentValue(Graphics g, Rectangle bounds, boolean hasFocus)
public void paintCurrentValueBackground(Graphics g, Rectangle bounds, boolean hasFocus)
protected Dimension getDefaultSize()
getDisplaySize()
protected Dimension getDisplaySize()
項目数の多いコンボボックスについては、プロトタイプディスプレイ値を使用して、ディスプレイサイズの計算を大幅に速めることをお勧めします。
JComboBox.setPrototypeDisplayValue(E)
protected Dimension getSizeForComponent(Component comp)
comp
- チェックする Component
protected void installKeyboardActions()
protected void uninstallKeyboardActions()
バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.