JavaTM 2 Platform
Standard Ed. 6

javax.swing.plaf
類別 ComponentUI

java.lang.Object
  繼承者 javax.swing.plaf.ComponentUI
直接已知子類別:
ButtonUI, ColorChooserUI, ComboBoxUI, DesktopIconUI, DesktopPaneUI, FileChooserUI, InternalFrameUI, LabelUI, 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 可插入外觀架構中所有 UI 委託物件的基本類別。Swing 元件的 UI 委託物件負責實作依賴於外觀的那些元件的某些方面。為了委託那些可能隨所安裝的外觀而改變的操作(繪製、佈局計算等等),JComponent 類別要調用來自此類別的方法。客戶端程序不應在此類別上直接調用這些方法。

另請參見:
JComponent, UIManager

建構子摘要
ComponentUI()
          單獨的建構子。
 
方法摘要
 boolean contains(JComponent c, int x, int y)
          如果指定 x,y 位置包含在指定元件外觀的已定義形狀中,則返回 true
static ComponentUI createUI(JComponent c)
          返回指定元件的一個 UI 委託實例。
 Accessible getAccessibleChild(JComponent c, int i)
          返回物件的第 iAccessible 子物件。
 int getAccessibleChildrenCount(JComponent c)
          返回物件中的可存取子物件數。
 int getBaseline(JComponent c, int width, int height)
          返回基線。
 Component.BaselineResizeBehavior getBaselineResizeBehavior(JComponent c)
          返回一個列舉,指示元件的基線如何隨大小的改變而發生更改。
 Dimension getMaximumSize(JComponent c)
          返回指定元件的適合外觀的最大大小。
 Dimension getMinimumSize(JComponent c)
          返回指定元件的適合外觀的最小大小。
 Dimension getPreferredSize(JComponent c)
          返回指定元件的適合外觀的首選大小。
 void installUI(JComponent c)
          配置指定元件,使其適合外觀。
 void paint(Graphics g, JComponent c)
          繪製指定元件,使其適合外觀。
 void uninstallUI(JComponent c)
          在 installUI 期間,在指定元件上反向執行的配置操作。
 void update(Graphics g, JComponent c)
          通知此 UI 委託開始繪製指定的元件。
 
從類別 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

建構子詳細資訊

ComponentUI

public ComponentUI()
單獨的建構子。(由子類別建構子調用,通常是隱式的)。

方法詳細資訊

installUI

public void installUI(JComponent c)
配置指定元件,使其適合外觀。當 ComponentUI 實例將作為 UI 委託安裝在指定元件上時,可調用此方法。此方法應該為外觀完整地配置元件,包括以下方面:
  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 實例處於某種潔淨狀態(沒有額外的偵聽器、沒有特定於外觀的屬性物件等等)。配置內容應該套件括以下方面:
  1. 從元件中移除所有 UI 設置的邊框。
  2. 從元件上移除所有 UI 設置的佈局管理器。
  3. 從元件中移除所有 UI 添加的子元件。
  4. 從元件中移除所有 UI 添加的事件/屬性偵聽器。
  5. 從元件中移除所有 UI 安裝的鍵盤 UI。
  6. 使所有已分派的實例資料物件無效,從而允許進行 GC 操作。

參數:
c - 從中移除此 UI 委託的元件;此參數常被忽略,但如果 UI 物件是無狀態的並由多個元件共享,則可以使用該參數
另請參見:
installUI(javax.swing.JComponent), JComponent.updateUI()

paint

public void paint(Graphics g,
                  JComponent c)
繪製指定元件,使其適合外觀。在將要繪製指定元件時,從 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。通常無需由子類別覆寫此方法;所有呈現程式碼的外觀都應位於 paint 方法中。

參數:
g - 將在其中進行繪製的 Graphics 上下文
c - 將繪製的元件;此參數常被忽略,但如果 UI 物件是無狀態的並由多個元件共享,則可以使用該參數
另請參見:
paint(java.awt.Graphics, javax.swing.JComponent), JComponent.paintComponent(java.awt.Graphics)

getPreferredSize

public Dimension getPreferredSize(JComponent c)
返回指定元件的適合外觀的首選大小。如果返回 null,則首選大小將由元件的佈局管理器計算(對於安裝了特定佈局管理器的元件而言,這是首選方法)。此方法的預設實作返回 null

參數:
c - 將查詢其首選大小的元件;此參數常被忽略,但如果 UI 物件是無狀態的並由多個元件共享,則可以使用該參數
另請參見:
JComponent.getPreferredSize(), LayoutManager.preferredLayoutSize(java.awt.Container)

getMinimumSize

public Dimension getMinimumSize(JComponent c)
返回指定元件的適合外觀的最小大小。如果返回 null,則最小大小將由元件的佈局管理器計算(對於安裝了特定佈局管理器的元件而言,這是首選方法)。此方法的預設實作調用 getPreferredSize 並返回該值。

參數:
c - 將查詢其最小大小的元件;此參數常被忽略,但如果 UI 物件是無狀態的並由多個元件共享,則可以使用該參數
返回:
一個 Dimension 物件或 null
另請參見:
JComponent.getMinimumSize(), LayoutManager.minimumLayoutSize(java.awt.Container), getPreferredSize(javax.swing.JComponent)

getMaximumSize

public Dimension getMaximumSize(JComponent c)
返回指定元件的適合外觀的最大大小。如果返回 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 位置包含在指定元件外觀的已定義形狀中,則返回 truexy 都是相對於指定元件的坐標系統定義的。儘管元件的 bounds 被限制為一個矩形,但為了進行命中檢測,此方法提供了在這些邊界內定義非矩形形狀的辦法。

參數:
c - 將在其中查詢 x,y 的元件;此參數常被忽略,但如果 UI 物件是無狀態的並由多個元件共享,則可以使用該參數
x - 點的 x 坐標
y - 點的 y 坐標
另請參見:
JComponent.contains(int, int), Component.contains(int, int)

createUI

public static ComponentUI createUI(JComponent c)
返回指定元件的一個 UI 委託實例。每個子類別都必須提供自己的靜態 createUI 方法,該方法返回 UI 委託子類別的一個實例。如果 UI 委託子類別是無狀態的,則該方法可以返回一個由多個元件共享的實例。如果 UI 委託是有狀態的,則該方法應該為每個元件返回一個新實例。此方法的預設實作拋出一個錯誤,因為它永遠都不應該被調用。


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 在可看作元件的螢幕上呈現一些區域,那麼它們可能希望覆寫此方法,但實際元件並不用於呈現那些區域。 註:從 v1.3 開始,建議開發人員調用 Component.AccessibleAWTComponent.getAccessibleChildrenCount() 替代此方法。

返回:
該物件中可存取的子物件數
另請參見:
getAccessibleChild(javax.swing.JComponent, int)

getAccessibleChild

public Accessible getAccessibleChild(JComponent c,
                                     int i)
返回物件的第 iAccessible 子物件。如果 UI 在可看作元件的螢幕上呈現一些區域,那麼它們可能需要覆寫此方法,但實際元件並不用於呈現那些區域。

註:從 v1.3 開始,建議開發人員調用 Component.AccessibleAWTComponent.getAccessibleChild() 替代此方法。

參數:
i - 子物件的從零開始的索引
返回:
物件的第 iAccessible 子物件
另請參見:
getAccessibleChildrenCount(javax.swing.JComponent)

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only