|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object javax.swing.plaf.ComponentUI javax.swing.plaf.ComboBoxUI javax.swing.plaf.basic.BasicComboBoxUI
public class BasicComboBoxUI
JComboBox 的基本 UI 實作。
組合框是一個組合元件,這意味著它是很多簡單元件的聚合。此類別創建和管理組合框上的偵聽器和組合框模型。這些偵聽器更新使用者介面以回應組合框的屬性和狀態的更改。
所有事件處理都是由利用 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
此偵聽器觀察在組合框中發生更改的綁定 (bound) 屬性。 |
欄位摘要 | |
---|---|
protected JButton |
arrowButton
|
protected Dimension |
cachedMinimumSize
|
protected JComboBox |
comboBox
|
protected CellRendererPane |
currentValuePane
|
protected Component |
editor
|
protected FocusListener |
focusListener
此受保護欄位是特定於實作的。 |
protected boolean |
hasFocus
此受保護欄位是特定於實作的。 |
protected boolean |
isMinimumSizeDirty
|
protected ItemListener |
itemListener
此受保護欄位是特定於實作的。 |
protected KeyListener |
keyListener
此受保護欄位是特定於實作的。 |
protected JList |
listBox
|
protected ListDataListener |
listDataListener
此受保護欄位是特定於實作的。 |
protected ComboPopup |
popup
|
protected KeyListener |
popupKeyListener
|
protected MouseListener |
popupMouseListener
|
protected MouseMotionListener |
popupMouseMotionListener
|
protected PropertyChangeListener |
propertyChangeListener
此受保護欄位是特定於實作的。 |
建構子摘要 | |
---|---|
BasicComboBoxUI()
|
方法摘要 | |
---|---|
void |
addEditor()
此公共方法是特定於實作的,應該為私有,不要調用或覆寫。 |
void |
configureArrowButton()
此公共方法是特定於實作的,應該為私有。 |
protected void |
configureEditor()
此受保護方法是特定於實作的,應該為私有,不要調用或覆寫。 |
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 的 insets。 |
Dimension |
getMaximumSize(JComponent c)
返回指定元件的適合外觀的最大大小。 |
Dimension |
getMinimumSize(JComponent c)
最小大小為顯示區域加上 insets 再加上按鈕的大小。 |
Dimension |
getPreferredSize(JComponent c)
返回指定元件的適合外觀的首選大小。 |
protected void |
installComponents()
創建並初始化構成聚合組合框的元件。 |
protected void |
installDefaults()
將預設顏色、預設字體、預設渲染器和預設編輯器安裝到 JComboBox 中。 |
protected void |
installKeyboardActions()
將鍵盤動作添加到 JComboBox。 |
protected void |
installListeners()
為組合框及其模型創建並安裝偵聽器。 |
void |
installUI(JComponent c)
配置指定元件,使其適合外觀。 |
boolean |
isFocusTraversable(JComboBox c)
確定 JComboBox 是否是可焦點遍歷的。 |
protected boolean |
isNavigationKey(int keyCode)
返回提供的 keyCode 是否映射到用於導航的鍵中。 |
boolean |
isPopupVisible(JComboBox c)
告知彈出控制元件是否可見。 |
void |
paint(Graphics g,
JComponent c)
繪製指定元件,使其適合外觀。 |
void |
paintCurrentValue(Graphics g,
Rectangle bounds,
boolean hasFocus)
繪製當前所選項。 |
void |
paintCurrentValueBackground(Graphics g,
Rectangle bounds,
boolean hasFocus)
繪製當前所選項的背景。 |
protected Rectangle |
rectangleForCurrentValue()
返回為繪製當前所選項而保留的區域。 |
void |
removeEditor()
此公共方法是特定於實作的,應該為私有,不要調用或覆寫。 |
protected void |
selectNextPossibleValue()
選擇列表中的下一項。 |
protected void |
selectPreviousPossibleValue()
選擇列表中的上一項。 |
void |
setPopupVisible(JComboBox c,
boolean v)
隱藏彈出部分。 |
protected void |
toggleOpenClose()
如果正在顯示彈出部分,則隱藏它;如果它是隱藏的,則顯示它。 |
void |
unconfigureArrowButton()
此公共方法是特定於實作的,應該為私有。 |
protected void |
unconfigureEditor()
此受保護方法是特定於實作的,應該為私有。 |
protected void |
uninstallComponents()
註銷並卸載組成組合框的聚合元件。 |
protected void |
uninstallDefaults()
從 JComboBox 中卸載預設顏色、預設字體、預設渲染器和預設編輯器。 |
protected void |
uninstallKeyboardActions()
移除焦點 InputMap 和 ActionMap。 |
protected void |
uninstallListeners()
從組合框及其模型中移除已安裝的偵聽器。 |
void |
uninstallUI(JComponent c)
在 installUI 期間,在指定元件上反向執行的配置操作。 |
從類別 javax.swing.plaf.ComponentUI 繼承的方法 |
---|
contains, update |
從類別 java.lang.Object 繼承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
欄位詳細資訊 |
---|
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
createFocusListener()
protected PropertyChangeListener propertyChangeListener
createPropertyChangeListener()
protected ItemListener itemListener
createItemListener()
protected MouseListener popupMouseListener
protected MouseMotionListener popupMouseMotionListener
protected KeyListener popupKeyListener
protected ListDataListener listDataListener
createListDataListener()
protected boolean isMinimumSizeDirty
protected Dimension cachedMinimumSize
建構子詳細資訊 |
---|
public BasicComboBoxUI()
方法詳細資訊 |
---|
public static ComponentUI createUI(JComponent c)
public void installUI(JComponent c)
ComponentUI
複製的描述ComponentUI
實例將作為 UI 委託安裝在指定元件上時,可調用此方法。此方法應該為外觀完整地配置元件,包括以下方面:
LayoutManager
。
PropertyChangeListener
。
ComponentUI
中的 installUI
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
實例處於某種潔淨狀態(沒有額外的偵聽器、沒有特定於外觀的屬性物件等等)。配置內容應該套件括以下方面:
ComponentUI
中的 uninstallUI
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)
protected ComboBoxEditor createEditor()
setEditor
顯式設置編輯器時才使用預設編輯器。
ComboBoxEditor
JComboBox.setEditor(javax.swing.ComboBoxEditor)
protected void installComponents()
protected void uninstallComponents()
public void addEditor()
ComboBoxEditor
createEditor()
,
JComboBox.setEditor(javax.swing.ComboBoxEditor)
,
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)
ComboBoxUI
中的 isPopupVisible
public void setPopupVisible(JComboBox c, boolean v)
ComboBoxUI
中的 setPopupVisible
public boolean isFocusTraversable(JComboBox c)
ComboBoxUI
中的 isFocusTraversable
public void paint(Graphics g, JComponent c)
ComponentUI
複製的描述ComponentUI.update
方法中調用此方法。子類別應該覆寫此方法並使用指定 Graphics
物件來呈現元件的內容。
ComponentUI
中的 paint
g
- 將在其中進行繪製的 Graphics
上下文c
- 將繪製的元件;此參數常被忽略,但如果 UI 物件是無狀態的並由多個元件共享,則可以使用該參數ComponentUI.update(java.awt.Graphics, javax.swing.JComponent)
public Dimension getPreferredSize(JComponent c)
ComponentUI
複製的描述null
,則首選大小將由元件的佈局管理器計算(對於安裝了特定佈局管理器的元件而言,這是首選方法)。此方法的預設實作返回 null
。
ComponentUI
中的 getPreferredSize
c
- 將查詢其首選大小的元件;此參數常被忽略,但如果 UI 物件是無狀態的並由多個元件共享,則可以使用該參數JComponent.getPreferredSize()
,
LayoutManager.preferredLayoutSize(java.awt.Container)
public Dimension getMinimumSize(JComponent c)
ComponentUI
中的 getMinimumSize
c
- 將查詢其最小大小的元件;此參數常被忽略,但如果 UI 物件是無狀態的並由多個元件共享,則可以使用該參數
Dimension
物件或 null
JComponent.getMinimumSize()
,
LayoutManager.minimumLayoutSize(java.awt.Container)
,
ComponentUI.getPreferredSize(javax.swing.JComponent)
public Dimension getMaximumSize(JComponent c)
ComponentUI
複製的描述null
,則最大大小將由元件的佈局管理器計算(對於安裝了特定佈局管理器的元件而言,這是首選方法)。此方法的預設實作調用 getPreferredSize
並返回該值。
ComponentUI
中的 getMaximumSize
c
- 將查詢其最大大小的元件;此參數常被忽略,但如果 UI 物件是無狀態的並由多個元件共享,則可以使用該參數
Dimension
物件或 null
JComponent.getMaximumSize()
,
LayoutManager2.maximumLayoutSize(java.awt.Container)
public int getBaseline(JComponent c, int width, int height)
ComponentUI
中的 getBaseline
c
- 為其請求基線的 JComponent
width
- 為其獲取基線的寬度height
- 為其獲取基線的高度
NullPointerException
- 如果 c
為 null
IllegalArgumentException
- 如果寬度或高度 < 0JComponent.getBaseline(int, int)
public Component.BaselineResizeBehavior getBaselineResizeBehavior(JComponent c)
ComponentUI
中的 getBaselineResizeBehavior
c
- 為其返回調整大小行為的 JComponent
NullPointerException
- 如果 c
為 null
JComponent.getBaseline(int, int)
public int getAccessibleChildrenCount(JComponent c)
ComponentUI
複製的描述Accessible
,那麼此方法應返回此物件的子物件數。如果 UI 在可看作元件的螢幕上呈現一些區域,那麼它們可能希望覆寫此方法,但實際元件並不用於呈現那些區域。
註:從 v1.3 開始,建議開發人員調用 Component.AccessibleAWTComponent.getAccessibleChildrenCount()
替代此方法。
ComponentUI
中的 getAccessibleChildrenCount
ComponentUI.getAccessibleChild(javax.swing.JComponent, int)
public Accessible getAccessibleChild(JComponent c, int i)
ComponentUI
複製的描述i
個 Accessible
子物件。如果 UI 在可看作元件的螢幕上呈現一些區域,那麼它們可能需要覆寫此方法,但實際元件並不用於呈現那些區域。
註:從 v1.3 開始,建議開發人員調用 Component.AccessibleAWTComponent.getAccessibleChild()
替代此方法。
ComponentUI
中的 getAccessibleChild
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(java.lang.Object)
protected void installKeyboardActions()
protected void uninstallKeyboardActions()
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。