|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
| 上一個類別 下一個類別 | 框架 無框架 | |||||||||
| 摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 | |||||||||
java.lang.Objectjava.awt.Component
java.awt.Container
javax.swing.JComponent
public abstract class JComponent
該類別是除頂層容器外所有 Swing 元件的基礎類別。要使用繼承自 JComponent 的元件,必須將該元件置於一個根為頂層 Swing 容器的套件含層次結構(containment hierarchy)中。頂層 Swing 容器(如 JFrame、JDialog 和 JApplet)是專門為其他 Swing 元件提供繪製自身場所的元件。有關包含層次結構的解釋,請參閱 The Java Tutorial 中的 Swing Components and the Containment Hierarchy 一節。
JComponent 類別提供:
ComponentUI 的物件。有關更多資訊,請參閱 The Java Tutorial 中的 How to Set the Look and Feel。
JComponent 套件含 Accessible 介面中的所有方法,但是它實際上不實作該介面。由擴展 JComponent 的每個類別負責實作該介面。
putClientProperty(java.lang.Object, java.lang.Object) 和 getClientProperty(java.lang.Object) 方法,可以將「名稱-物件」對與繼承自 JComponent 的任意物件進行關聯。
JComponent 及其子類別記錄了某些屬性的預設值。例如,JTable 記錄的預設行高為 16。每個具有 ComponentUI 的 JComponent 子類別都將創建該 ComponentUI 作為其建構子的一部分。為了提供特定的外觀,每個 ComponentUI 都可以在創建它的 JComponent 上設置各種屬性。例如,自定義的外觀可能要求 JTable 的行高為 24。而所記錄的預設值是安裝 ComponentUI 前的屬性值。如果需要為特定的屬性使用具體值,則應該顯式地設置它。
在版本 1.4 中,重新設計了焦點子系統。有關更多資訊,請參閱 The Java Tutorial 中的 How to Use the Focus Subsystem 一節。
警告:Swing 不是執行緒安全的。有關更多資訊,請參閱 Swing's Threading Policy。
警告:此類別的序列化物件與以後的 Swing 版本不相容。當前序列化支持適用於短期存儲,或適用於在運行相同 Swing 版本的應用程序之間進行 RMI(Remote Method Invocation,遠端方法調用)。從 1.4 版本開始,已在 java.beans 套件中添加了支持所有 JavaBeansTM 長期存儲的功能。請參見 XMLEncoder。
KeyStroke,
Action,
setBorder(javax.swing.border.Border),
registerKeyboardAction(java.awt.event.ActionListener, java.lang.String, javax.swing.KeyStroke, int),
JOptionPane,
setDebugGraphicsOptions(int),
setToolTipText(java.lang.String),
setAutoscrolls(boolean)| 巢狀類別摘要 | |
|---|---|
class |
JComponent.AccessibleJComponent
用於為可存取性提供預設支持的 JComponent 內部類別。 |
| 從類別 java.awt.Container 繼承的巢狀類別/介面 |
|---|
Container.AccessibleAWTContainer |
| 從類別 java.awt.Component 繼承的巢狀類別/介面 |
|---|
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy |
| 欄位摘要 | |
|---|---|
protected AccessibleContext |
accessibleContext
與此 JComponent 關聯的 AccessibleContext。 |
protected EventListenerList |
listenerList
此元件的事件偵聽器列表。 |
static String |
TOOL_TIP_TEXT_KEY
鼠標位於元件上方時顯示的註釋,也稱為“值提示”、“相交提示 (flyover help)”或“相交標籤 (flyover label)”。 |
protected ComponentUI |
ui
此元件的外觀委託。 |
static int |
UNDEFINED_CONDITION
某些 API 使用的常數,意味著沒有定義任何條件。 |
static int |
WHEN_ANCESTOR_OF_FOCUSED_COMPONENT
用於 registerKeyboardAction 的常數,意味著當接收元件是獲得焦點的元件的祖先或者其本身就是獲得焦點的元件時,應該調用命令。 |
static int |
WHEN_FOCUSED
用於 registerKeyboardAction 的常數,意味著在元件獲得焦點時應該調用命令。 |
static int |
WHEN_IN_FOCUSED_WINDOW
用於 registerKeyboardAction 的常數,意味著當接收元件處於獲得焦點的視窗內或者其本身就是獲得焦點的元件時,應該調用命令。 |
| 從類別 java.awt.Component 繼承的欄位 |
|---|
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT |
| 從介面 java.awt.image.ImageObserver 繼承的欄位 |
|---|
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH |
| 建構子摘要 | |
|---|---|
JComponent()
預設的 JComponent 建構子。 |
|
| 方法摘要 | ||
|---|---|---|
void |
addAncestorListener(AncestorListener listener)
註冊 listener,從而當元件或其任意祖先移動,或者變得可見或不可見時該偵聽器將收到 AncestorEvent。 |
|
void |
addNotify()
通知此元件它現在已有了一個父元件。 |
|
void |
addVetoableChangeListener(VetoableChangeListener listener)
向偵聽器列表添加一個 VetoableChangeListener。 |
|
void |
computeVisibleRect(Rectangle visibleRect)
返回該 Component 的“可見 rect 矩形”,即此元件及其所有祖先的可見矩形的交集。 |
|
boolean |
contains(int x,
int y)
為了進行鼠標處理,讓 UI 委託來定義此元件的精確形狀。 |
|
JToolTip |
createToolTip()
返回用於顯示工具提示的 JToolTip 實例。 |
|
void |
disable()
已過時。 從 JDK version 1.1 開始,由 java.awt.Component.setEnabled(boolean) 取代。 |
|
void |
enable()
已過時。 從 JDK version 1.1 開始,由 java.awt.Component.setEnabled(boolean) 取代。 |
|
void |
firePropertyChange(String propertyName,
boolean oldValue,
boolean newValue)
支持報告 boolean 屬性的綁定屬性更改。 |
|
void |
firePropertyChange(String propertyName,
char oldValue,
char newValue)
報告綁定屬性的改變。 |
|
void |
firePropertyChange(String propertyName,
int oldValue,
int newValue)
支持報告整數屬性的綁定屬性更改。 |
|
protected void |
fireVetoableChange(String propertyName,
Object oldValue,
Object newValue)
支持報告約束 (constrained) 屬性的更改。 |
|
AccessibleContext |
getAccessibleContext()
返回與此 JComponent 關聯的 AccessibleContext。 |
|
ActionListener |
getActionForKeyStroke(KeyStroke aKeyStroke)
返回執行針對給定鍵擊而註冊的操作的物件。 |
|
ActionMap |
getActionMap()
返回用於確定為特定 KeyStroke 綁定觸發何種 Action 的 ActionMap。 |
|
float |
getAlignmentX()
覆寫 Container.getAlignmentX 以返回垂直對齊方式。 |
|
float |
getAlignmentY()
覆寫 Container.getAlignmentY 以返回水平對齊方式。 |
|
AncestorListener[] |
getAncestorListeners()
返回在此元件上註冊的所有祖先偵聽器所組成的陣列。 |
|
boolean |
getAutoscrolls()
獲取 autoscrolls 屬性。 |
|
int |
getBaseline(int width,
int height)
返回基線。 |
|
Component.BaselineResizeBehavior |
getBaselineResizeBehavior()
返回一個列舉,指示元件的基線如何隨大小更改而發生更改。 |
|
Border |
getBorder()
返回此元件的邊框;如果當前未設置邊框,則返回 null。 |
|
Rectangle |
getBounds(Rectangle rv)
將此元件的邊界存儲到“返回值” rv 中並返回 rv。 |
|
Object |
getClientProperty(Object key)
返回具有指定鍵的屬性的值。 |
|
protected Graphics |
getComponentGraphics(Graphics g)
返回用於繪製此元件的圖形物件。 |
|
JPopupMenu |
getComponentPopupMenu()
返回為此元件分派的 JPopupMenu。 |
|
int |
getConditionForKeyStroke(KeyStroke aKeyStroke)
返回確定是否發生已註冊動作以回應指定鍵擊事件的條件。 |
|
int |
getDebugGraphicsOptions()
返回圖形除錯的狀態。 |
|
static Locale |
getDefaultLocale()
返回在創建時,用於初始化每個 JComponent 的語言環境屬性的預設語言環境。 |
|
FontMetrics |
getFontMetrics(Font font)
獲取指定 Font 的 FontMetrics。 |
|
Graphics |
getGraphics()
返回此元件的圖形上下文,該上下文允許您繪製元件。 |
|
int |
getHeight()
返回此元件的當前高度。 |
|
boolean |
getInheritsPopupMenu()
如果應該從父元件繼承 JPopupMenu,則返回 true。 |
|
InputMap |
getInputMap()
返回元件具有焦點時所使用的 InputMap。 |
|
InputMap |
getInputMap(int condition)
返回 condition 中所使用的 InputMap。 |
|
InputVerifier |
getInputVerifier()
返回此元件的輸入校驗器。 |
|
Insets |
getInsets()
如果已在此元件上設置了邊框,則返回該邊框的 insets;否則調用 super.getInsets。 |
|
Insets |
getInsets(Insets insets)
返回包含此元件 inset 值的 Insets 物件。 |
|
|
getListeners(Class<T> listenerType)
返回當前在此 JComponent 上註冊為 FooListener 的所有物件所組成的陣列。 |
|
Point |
getLocation(Point rv)
將此元件的 x,y 原點存儲到“返回值” rv 中並返回 rv。 |
|
Dimension |
getMaximumSize()
如果已將最大大小設置為一個非 null 值,則返回該值。 |
|
Dimension |
getMinimumSize()
如果已將最小大小設置為一個非 null 值,則返回該值。 |
|
Component |
getNextFocusableComponent()
已過時。 從 1.4 版本開始,由 FocusTraversalPolicy 取代。 |
|
Point |
getPopupLocation(MouseEvent event)
返回在此元件坐標系統中顯示彈出式選單的首選位置。 |
|
Dimension |
getPreferredSize()
如果 preferredSize 已設置為一個非 null 值,則返回該值。 |
|
KeyStroke[] |
getRegisteredKeyStrokes()
返回啟動已註冊動作的 KeyStrokes。 |
|
JRootPane |
getRootPane()
返回此元件的 JRootPane 祖先。 |
|
Dimension |
getSize(Dimension rv)
將此元件的寬度/高度存儲到“返回值” rv 中並返回 rv。 |
|
Point |
getToolTipLocation(MouseEvent event)
返回工具提示在此元件坐標系統中的位置。 |
|
String |
getToolTipText()
返回通過 setToolTipText 所設置的工具提示字元串。 |
|
String |
getToolTipText(MouseEvent event)
返回用作 event 工具提示的字元串。 |
|
Container |
getTopLevelAncestor()
返回此元件的頂層祖先(包含的 Window 或 Applet);如果尚未將此元件添加到任意容器中,則返回 null。 |
|
TransferHandler |
getTransferHandler()
獲取 transferHandler 屬性。 |
|
String |
getUIClassID()
返回用於尋找 wing.plaf.ComponentUI 類別(定義了此元件的外觀)名的 UIDefaults 鍵。 |
|
boolean |
getVerifyInputWhenFocusTarget()
返回值指示是否在此元件請求焦點前,為當前的焦點所有者調用輸入校驗器。 |
|
VetoableChangeListener[] |
getVetoableChangeListeners()
返回在此元件上註冊的所有可否決更改偵聽器所組成的陣列。 |
|
Rectangle |
getVisibleRect()
返回該 Component 的“可見矩形”,即此元件的可見矩形 new Rectangle(0, 0, getWidth(), getHeight()) 及其所有祖先的可見矩形的交集。 |
|
int |
getWidth()
返回此元件的當前寬度。 |
|
int |
getX()
返回元件原點的當前 x 坐標。 |
|
int |
getY()
返回元件原點的當前 y 坐標。 |
|
void |
grabFocus()
請求此 Component 獲取輸入焦點,並請求此 Component 的頂層祖先成為獲得焦點的 Window。 |
|
boolean |
isDoubleBuffered()
返回此元件是否應該使用緩衝區進行繪製。 |
|
static boolean |
isLightweightComponent(Component c)
如果此元件是輕量的,也就是說,如果它沒有本機視窗系統同位體,則返回 true。 |
|
boolean |
isManagingFocus()
已過時。 從 1.4 版本開始,由 Component.setFocusTraversalKeys(int, Set) 和 Container.setFocusCycleRoot(boolean) 取代。 |
|
boolean |
isOpaque()
如果此元件是完全不透明的,則返回 true。 |
|
boolean |
isOptimizedDrawingEnabled()
如果此元件平鋪顯示其子元件(也就是說,它可以保證子元件不重疊),則返回 true。 |
|
boolean |
isPaintingForPrint()
如果此元件上的當前繪製操作是 print 操作的一部分,則返回 true。 |
|
boolean |
isPaintingTile()
如果元件當前正在繪製 tile,則返回 true。 |
|
boolean |
isRequestFocusEnabled()
如果此 JComponent 應該獲得焦點,則返回 true;否則返回 false。 |
|
boolean |
isValidateRoot()
如果此方法返回 true,則此元件的子代調用 revalidate 將導致從此根開始對整棵階層樹進行驗證。 |
|
void |
paint(Graphics g)
由 Swing 調用,以繪製元件。 |
|
protected void |
paintBorder(Graphics g)
繪製元件的邊框。 |
|
protected void |
paintChildren(Graphics g)
繪製此元件的子元件。 |
|
protected void |
paintComponent(Graphics g)
如果 UI 委託為非 null,則調用該 UI 委託的 paint 方法。 |
|
void |
paintImmediately(int x,
int y,
int w,
int h)
立即繪製此元件及其與該區域重疊的子代中的指定區域。 |
|
void |
paintImmediately(Rectangle r)
立即繪製指定的區域。 |
|
protected String |
paramString()
返回此 JComponent 的字元串表示形式。 |
|
void |
print(Graphics g)
調用此方法列印指定 Graphics 的元件。 |
|
void |
printAll(Graphics g)
調用此方法列印元件。 |
|
protected void |
printBorder(Graphics g)
列印元件的邊框。 |
|
protected void |
printChildren(Graphics g)
列印此元件的子元件。 |
|
protected void |
printComponent(Graphics g)
在列印操作期間調用此方法。 |
|
protected void |
processComponentKeyEvent(KeyEvent e)
處理該元件本身可識別的所有鍵事件。 |
|
protected boolean |
processKeyBinding(KeyStroke ks,
KeyEvent e,
int condition,
boolean pressed)
由於發生 KeyEvent e 而調用此方法處理 ks 的鍵綁定。 |
|
protected void |
processKeyEvent(KeyEvent e)
覆寫 processKeyEvent 以處理事件。 |
|
protected void |
processMouseEvent(MouseEvent e)
處理此元件上發生的鼠標事件,通過將其指派到任意已註冊的 MouseListener 物件來完成,有關此方法的完整描述,請參閱 Component.processMouseEvent(MouseEvent)。 |
|
protected void |
processMouseMotionEvent(MouseEvent e)
處理鼠標移動事件,如 MouseEvent.MOUSE_DRAGGED。 |
|
void |
putClientProperty(Object key,
Object value)
向此元件添加任意的鍵/值“客戶端屬性”。 |
|
void |
registerKeyboardAction(ActionListener anAction,
KeyStroke aKeyStroke,
int aCondition)
此方法現在已過時,對於類似的操作,請結合使用 getActionMap() 和 getInputMap()。 |
|
void |
registerKeyboardAction(ActionListener anAction,
String aCommand,
KeyStroke aKeyStroke,
int aCondition)
此方法現在已過時,對於類似的操作,請結合使用 getActionMap() 和 getInputMap()。 |
|
void |
removeAncestorListener(AncestorListener listener)
註銷 listener,使其不再接收 AncestorEvent。 |
|
void |
removeNotify()
通知此元件它不再有父元件。 |
|
void |
removeVetoableChangeListener(VetoableChangeListener listener)
從偵聽器列表移除一個 VetoableChangeListener。 |
|
void |
repaint(long tm,
int x,
int y,
int width,
int height)
如果要顯示元件,則將指定的區域添加到髒區 (dirty region) 列表。 |
|
void |
repaint(Rectangle r)
如果要顯示該元件,則將指定的區域添加到髒區列表。 |
|
boolean |
requestDefaultFocus()
已過時。 從 1.4 版本開始,由 FocusTraversalPolicy.getDefaultComponent(Container).requestFocus() 取代 |
|
void |
requestFocus()
請求此 Component 獲取輸入焦點。 |
|
boolean |
requestFocus(boolean temporary)
請求此 Component 獲取輸入焦點。 |
|
boolean |
requestFocusInWindow()
請求此 Component 獲取輸入焦點。 |
|
protected boolean |
requestFocusInWindow(boolean temporary)
請求此 Component 獲取輸入焦點。 |
|
void |
resetKeyboardActions()
註銷首層 InputMaps 和 ActionMap 中的所有綁定。 |
|
void |
reshape(int x,
int y,
int w,
int h)
已過時。 從 JDK 5 開始,由 Component.setBounds(int, int, int, int) 取代。
移動此元件並調整其大小。 |
|
void |
revalidate()
支持推遲的自動佈局。 |
|
void |
scrollRectToVisible(Rectangle aRect)
將 scrollRectToVisible() 訊息轉發到 JComponent 的父元件。 |
|
void |
setActionMap(ActionMap am)
將 ActionMap 設置為 am。 |
|
void |
setAlignmentX(float alignmentX)
設置垂直對齊方式。 |
|
void |
setAlignmentY(float alignmentY)
設置水平對齊方式。 |
|
void |
setAutoscrolls(boolean autoscrolls)
設置 autoscrolls 屬性。 |
|
void |
setBackground(Color bg)
設置此元件的背景色。 |
|
void |
setBorder(Border border)
設置此元件的邊框。 |
|
void |
setComponentPopupMenu(JPopupMenu popup)
設置此 JComponent 的 JPopupMenu。 |
|
void |
setDebugGraphicsOptions(int debugOptions)
啟用或禁用與元件或其某個子元件內執行的每個圖形操作有關的診斷資訊。 |
|
static void |
setDefaultLocale(Locale l)
設置在創建時,用於初始化每個 JComponent 的語言環境屬性的預設語言環境。 |
|
void |
setDoubleBuffered(boolean aFlag)
設置此元件是否應該使用緩衝區進行繪製。 |
|
void |
setEnabled(boolean enabled)
設置是否啟用此元件。 |
|
void |
setFocusTraversalKeys(int id,
Set<? extends AWTKeyStroke> keystrokes)
設置針對此 Component 的給定遍歷操作的焦點遍歷鍵。 |
|
void |
setFont(Font font)
設置此元件的字體。 |
|
void |
setForeground(Color fg)
設置此元件的前景色。 |
|
void |
setInheritsPopupMenu(boolean value)
設置如果此元件沒有分派給它的 JPopupMenu,那麼 getComponentPopupMenu 是否應該委託給其父元件。 |
|
void |
setInputMap(int condition,
InputMap map)
設置在 map 的 condition 條件下要使用的 InputMap。 |
|
void |
setInputVerifier(InputVerifier inputVerifier)
設置此元件的輸入校驗器。 |
|
void |
setMaximumSize(Dimension maximumSize)
將此元件的最大大小設置為一個常數值。 |
|
void |
setMinimumSize(Dimension minimumSize)
將此元件的最小大小設置為一個常數值。 |
|
void |
setNextFocusableComponent(Component aComponent)
已過時。 從 1.4 版本開始,由 FocusTraversalPolicy 取代 |
|
void |
setOpaque(boolean isOpaque)
如果為 true,則該元件繪製其邊界內的所有像素。 |
|
void |
setPreferredSize(Dimension preferredSize)
設置此元件的首選大小。 |
|
void |
setRequestFocusEnabled(boolean requestFocusEnabled)
提供一個關於此 JComponent 是否應該獲得焦點的提示。 |
|
void |
setToolTipText(String text)
註冊要在工具提示中顯示的文本。 |
|
void |
setTransferHandler(TransferHandler newHandler)
設置 transferHandler 屬性;如果該元件不支持資料傳輸操作,則為 null。 |
|
protected void |
setUI(ComponentUI newUI)
設置此元件的外觀委託。 |
|
void |
setVerifyInputWhenFocusTarget(boolean verifyInputWhenFocusTarget)
設置該值指示是否在此元件請求焦點前,為當前的焦點所有者調用輸入校驗器。 |
|
void |
setVisible(boolean aFlag)
使該元件可見或不可見。 |
|
void |
unregisterKeyboardAction(KeyStroke aKeyStroke)
此方法現在已過時。 |
|
void |
update(Graphics g)
調用 paint。 |
|
void |
updateUI()
將 UI 屬性重置為當前外觀的值。 |
|
| 從類別 java.lang.Object 繼承的方法 |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| 欄位詳細資訊 |
|---|
protected transient ComponentUI ui
protected EventListenerList listenerList
public static final int WHEN_FOCUSED
registerKeyboardAction 的常數,意味著在元件獲得焦點時應該調用命令。
public static final int WHEN_ANCESTOR_OF_FOCUSED_COMPONENT
registerKeyboardAction 的常數,意味著當接收元件是獲得焦點的元件的祖先或者其本身就是獲得焦點的元件時,應該調用命令。
public static final int WHEN_IN_FOCUSED_WINDOW
registerKeyboardAction 的常數,意味著當接收元件處於獲得焦點的視窗內或者其本身就是獲得焦點的元件時,應該調用命令。
public static final int UNDEFINED_CONDITION
public static final String TOOL_TIP_TEXT_KEY
protected AccessibleContext accessibleContext
JComponent 關聯的 AccessibleContext。
| 建構子詳細資訊 |
|---|
public JComponent()
JComponent 建構子。除調用 Container 建構子外,此建構子幾乎不進行初始化工作。例如,初始佈局管理器為 null。但是,它將元件的語言環境屬性設置為 JComponent.getDefaultLocale 所返回的值。
getDefaultLocale()| 方法詳細資訊 |
|---|
public void setInheritsPopupMenu(boolean value)
JPopupMenu,那麼 getComponentPopupMenu 是否應該委託給其父元件。
此方法的預設值是 false,但是某些作為多個 JComponent 實作的 JComponent 子類別可能將其設置為 true。
這是一個綁定 (bound) 屬性。
value - JPopupMenu 是否是繼承的setComponentPopupMenu(javax.swing.JPopupMenu)public boolean getInheritsPopupMenu()
setComponentPopupMenu(javax.swing.JPopupMenu)public void setComponentPopupMenu(JPopupMenu popup)
JComponent 的 JPopupMenu。UI 負責註冊綁定並添加必要的偵聽器,這樣可在恰當的時間顯示 JPopupMenu。何時顯示 JPopupMenu 取決於外觀:有些在鼠標事件中顯示它,另一些則啟用鍵綁定。
如果 popup 為 null,並且 getInheritsPopupMenu 返回 true,則將 getComponentPopupMenu 委託給父級。這將允許所有子元件繼承父元件的 popupmenu。
這是一個綁定屬性。
popup - - 分派給此元件的彈出選單,可以為 nullgetComponentPopupMenu()public JPopupMenu getComponentPopupMenu()
JPopupMenu。如果尚未給此元件分派 JPopupMenu 並且 getInheritsPopupMenu 為 true,則此方法返回 getParent().getComponentPopupMenu()(假定父元件是有效的)。
JPopupMenu;如果未分派彈出選單,則為 nullsetComponentPopupMenu(javax.swing.JPopupMenu)public void updateUI()
JComponent 子類別必須用以下方式覆寫此方法:
public void updateUI() {
setUI((SliderUI)UIManager.getUI(this);
}
setUI(javax.swing.plaf.ComponentUI),
UIManager.getLookAndFeel(),
UIManager.getUI(javax.swing.JComponent)protected void setUI(ComponentUI newUI)
JComponent 子類別通常覆寫此方法,以縮小參數型別。例如,在 JSlider 中:
public void setUI(SliderUI newUI) {
super.setUI(newUI);
}
此外,JComponent 子類別必須提供一個返回正確型別的 getUI 方法。例如:
public SliderUI getUI() {
return (SliderUI)ui;
}
newUI - 新的 UI 委託updateUI(),
UIManager.getLookAndFeel(),
UIManager.getUI(javax.swing.JComponent)public String getUIClassID()
wing.plaf.ComponentUI 類別(定義了此元件的外觀)名的 UIDefaults 鍵。大多數應用程序無需調用此方法。支持可插入外觀的 JComponent 子類別應該覆寫此方法,以返回映射到定義其外觀的 ComponentUI 子類別的 UIDefaults 鍵。
ComponentUI 子類別的 UIDefaults 鍵UIDefaults.getUI(javax.swing.JComponent)protected Graphics getComponentGraphics(Graphics g)
DebugGraphics,則根據需要創建一個新的 DebugGraphics 物件。否則只是配置指定圖形物件的前景和字體。
g - 原 Graphics 物件
Graphics 物件protected void paintComponent(Graphics g)
null,則調用該 UI 委託的 paint 方法。向該委託傳遞 Graphics 物件的副本,以保護其餘的 paint 程式碼免遭不可取消的更改(例如 Graphics.translate)。
如果在子類別中覆寫此方法,則不應該對傳入的 Graphics 進行永久更改。例如,不應更改剪貼區的 Rectangle 或修改轉換。如果需要進行這些操作,您會發現根據傳入的 Graphics 創建一個新 Graphics 並進行操作更加方便。另外,如果不調用父級類別的實作,則必須遵守不透明屬性,也就是說,如果此元件是不透明的,則必須以透明的顏色完全填充背景。如果不遵守不透明屬性,則很可能看到可視的人為內容。
傳入的 Graphics 物件可能安裝了恆等轉換以外的轉換。在這種情況下,如果多次應用其他轉換,則可能得到不可預料的結果。
g - 要保護的 Graphics 物件paint(java.awt.Graphics),
ComponentUIprotected void paintChildren(Graphics g)
shouldUseBuffer 為 true,那麼所有的元件祖先都沒有緩衝區,且元件的子元件可以使用緩衝區(如果有)。否則,有一個祖先具有當前正在使用的緩衝區,且子元件不應該使用緩衝區進行繪製。
g - 在其中進行繪製的 Graphics 上下文paint(java.awt.Graphics),
Container.paint(java.awt.Graphics)protected void paintBorder(Graphics g)
如果在子類別中覆寫此方法,則不應該對傳入的 Graphics 進行永久更改。例如,不應更改剪貼區的 Rectangle 或修改轉換。如果需要進行這些操作,您會發現根據傳入的 Graphics 創建一個新 Graphics 並進行操作更加方便。
g - 在其中進行繪製的 Graphics 上下文paint(java.awt.Graphics),
setBorder(javax.swing.border.Border)public void update(Graphics g)
paint。不清除背景,而是查看 ComponentUI.update,它由 paintComponent 調用。
Container 中的 updateg - 在其中進行繪製的 Graphics 上下文paint(java.awt.Graphics),
paintComponent(java.awt.Graphics),
ComponentUIpublic void paint(Graphics g)
paint,而是應該使用 repaint 方法來安排重繪元件。
此方法實際上將繪製工作委託給三個受保護的方法:paintComponent、paintBorder 和 paintChildren。按列出的順序調用這些方法,以確保子元件出現在元件本身的頂部。一般來說,不應在分派給邊框的 insets 區域繪製元件及其子元件。子類別可以始終覆寫此方法。只想特殊化 UI(外觀)委託的 paint 方法的子類別只需覆寫 paintComponent。
Container 中的 paintg - 在其中進行繪製的 Graphics 上下文paintComponent(java.awt.Graphics),
paintBorder(java.awt.Graphics),
paintChildren(java.awt.Graphics),
getComponentGraphics(java.awt.Graphics),
repaint(long, int, int, int, int)public void printAll(Graphics g)
print。
Component 中的 printAllg - 在其中進行繪製的 Graphics 上下文print(java.awt.Graphics),
printComponent(java.awt.Graphics),
printBorder(java.awt.Graphics),
printChildren(java.awt.Graphics)public void print(Graphics g)
Graphics 的元件。此方法將導致對 printComponent、printBorder 和 printChildren 的調用。如果目的是定制列印外觀的方式,建議覆寫前面提及的方法之一,而不是此方法。但是,如果想在調用父級類別行為之前準備好狀態,則覆寫此方法很有用。例如,如果想在列印前更改元件的背景顏色,則可以執行以下操作:
public void print(Graphics g) {
Color orig = getBackground();
setBackground(Color.WHITE);
// wrap in try/finally so that we always restore the state
try {
super.print(g);
} finally {
setBackground(orig);
}
}
另外,對於將列印委託給其他物件的元件,在繪製期間就可以查詢元件是否在列印操作的中間。isPaintingForPrint 方法提供了這種功能並且此方法將改變其返回值:在即將呈現前改為 true,在呈現後立即改為 false。隨著每一次更改,在此元件上都會觸發一個名為 "paintingForPrint" 的屬性更改事件。
此方法設置元件的狀態,使得雙緩衝無法使用:繪製將直接在傳入的 Graphics 上完成。
Container 中的 printg - 在其中進行繪製的 Graphics 上下文printComponent(java.awt.Graphics),
printBorder(java.awt.Graphics),
printChildren(java.awt.Graphics),
isPaintingForPrint()protected void printComponent(Graphics g)
paintComponent。如果要在列印時添加特殊的繪製行為,可覆寫此方法。
g - 在其中進行繪製的 Graphics 上下文print(java.awt.Graphics)protected void printChildren(Graphics g)
paintChildren。如果希望以不同於繪製的方式列印子元件,則覆寫此方法。
g - 在其中進行繪製的 Graphics 上下文print(java.awt.Graphics)protected void printBorder(Graphics g)
paintBorder。如果要以和繪製該邊框所不同的方式來列印邊框,則覆寫此方法。
g - 在其中進行繪製的 Graphics 上下文print(java.awt.Graphics)public boolean isPaintingTile()
public final boolean isPaintingForPrint()
print 操作的一部分,則返回 true。當想要定制所列印的內容以及在螢幕上顯示的內容時,此方法很有用。
通過偵聽此元件上名為 "paintingForPrint" 的屬性更改事件,可以檢測此屬性值中的更改。
註:此方法也提供其他高層級別 Swing 列印 API 所提供的功能。但是,它嚴格處理繪製操作,不要因為高層級別列印進程上提供的資訊相混淆。例如,JTable.print() 操作不一定會連續呈現完整的元件,此方法的返回值在該操作中可多次更改。元件甚至有可能在列印進程正在進行時便繪製到螢幕。在這種情況下,當且僅當該表作為列印進程的一部分進行繪製時,此方法的返回值為 true。
print(java.awt.Graphics)@Deprecated public boolean isManagingFocus()
Component.setFocusTraversalKeys(int, Set) 和 Container.setFocusCycleRoot(boolean) 取代。
將此 JComponent 的焦點遍歷鍵更改為 CTRL+TAB 和 CTRL+SHIFT+TAB。在計算焦點遍歷循環時,SortingFocusTraversalPolicy 仍然沒有將此 JComponent 的子代考慮在內。
Component.setFocusTraversalKeys(int, java.util.Set extends java.awt.AWTKeyStroke>),
SortingFocusTraversalPolicy@Deprecated public void setNextFocusableComponent(Component aComponent)
FocusTraversalPolicy 取代
為此 JComponent 的焦點遍歷循環覆寫預設的 FocusTraversalPolicy:無條件地將指定的 Component 設置為循環中的下一個 Component,並將此 JComponent 設置為循環中指定 Component 的前一個 Component。
aComponent - 焦點遍歷循環中應該跟在此 JComponent 後的 ComponentgetNextFocusableComponent(),
FocusTraversalPolicy@Deprecated public Component getNextFocusableComponent()
FocusTraversalPolicy 取代。
返回之前對此 JComponent 調用 setNextFocusableComponent(Component) 所設置的 Component。
JComponent 後的 Component;如果尚未顯式地指定,則為 nullsetNextFocusableComponent(java.awt.Component)public void setRequestFocusEnabled(boolean requestFocusEnabled)
JComponent 是否應該獲得焦點的提示。這只是一個提示,由使用者決定請求焦點是否遵守此屬性。鼠標操作通常遵守此屬性,而鍵盤操作則並非如此。例如,在鼠標操作期間,外觀可以在請求焦點前驗證此屬性是否為 true。如果不想在 JComponent 上按下鼠標以獲得焦點,而是希望通過鍵盤遍歷 JComponent,則要多次使用此方法。如果不希望此 JComponent 可聚焦,請使用 setFocusable 方法。
有關更多資訊,請參閱 The Java Tutorial 中的 How to Use the Focus Subsystem 一節。
requestFocusEnabled - 指示是否希望此 JComponent 可聚焦Component.setFocusable(boolean)public boolean isRequestFocusEnabled()
JComponent 應該獲得焦點,則返回 true;否則返回 false。
有關更多資訊,請參閱 The Java Tutorial 中的 How to Use the Focus Subsystem 一節。
true;否則返回 falsesetRequestFocusEnabled(boolean),
Focus Specification,
Component.isFocusable()public void requestFocus()
Component 獲取輸入焦點。有關此方法的完整描述,請參閱 Component.requestFocus()。
注意,不推薦使用此方法,因為其行為與平臺有關。建議使用 requestFocusInWindow()。若要瞭解有關焦點的更多資訊,請參閱 The Java Tutorial 中的
How to Use the Focus Subsystem 一節。
Component 中的 requestFocusComponent.requestFocusInWindow(),
Component.requestFocusInWindow(boolean)public boolean requestFocus(boolean temporary)
Component 獲取輸入焦點。有關此方法的完整描述,請參閱 Component.requestFocus(boolean)。
注意,不推薦使用此方法,因為其行為與平臺有關。建議使用 requestFocusInWindow(boolean)。若要瞭解有關焦點的更多資訊,請參閱 The Java Tutorial 中的 How to Use the Focus Subsystem 一節。
Component 中的 requestFocustemporary - boolean 值,指示焦點更改是否為臨時的
false;如果有可能成功,則返回 trueComponent.requestFocusInWindow(),
Component.requestFocusInWindow(boolean)public boolean requestFocusInWindow()
Component 獲取輸入焦點。有關此方法的完整描述,請參閱 Component.requestFocusInWindow()。
若要瞭解有關焦點的更多資訊,請參閱 The Java Tutorial 中的 How to Use the Focus Subsystem 一節。
Component 中的 requestFocusInWindowfalse;如果有可能成功,則返回 trueComponent.requestFocusInWindow(),
Component.requestFocusInWindow(boolean)protected boolean requestFocusInWindow(boolean temporary)
Component 獲取輸入焦點。有關此方法的完整描述,請參閱 Component.requestFocusInWindow(boolean)。
若要瞭解有關焦點的更多資訊,請參閱 The Java Tutorial 中的 How to Use the Focus Subsystem 一節。
Component 中的 requestFocusInWindowtemporary - boolean 值,指示焦點更改是否為臨時的
false;如果有可能成功,則返回 trueComponent.requestFocusInWindow(),
Component.requestFocusInWindow(boolean)public void grabFocus()
此方法用於焦點實作。客戶端程式碼不應使用此方法;相反,它應該使用 requestFocusInWindow()。
requestFocusInWindow()public void setVerifyInputWhenFocusTarget(boolean verifyInputWhenFocusTarget)
verifyInputWhenFocusTarget - verifyInputWhenFocusTarget 屬性的值InputVerifier,
setInputVerifier(javax.swing.InputVerifier),
getInputVerifier(),
getVerifyInputWhenFocusTarget()public boolean getVerifyInputWhenFocusTarget()
verifyInputWhenFocusTarget 屬性的值InputVerifier,
setInputVerifier(javax.swing.InputVerifier),
getInputVerifier(),
setVerifyInputWhenFocusTarget(boolean)public FontMetrics getFontMetrics(Font font)
Font 的 FontMetrics。
Component 中的 getFontMetricsfont - 要獲取其字體規格的字體
font 的字體規格
NullPointerException - 如果 font 為 nullComponent.getFont(),
Component.getPeer(),
ComponentPeer.getFontMetrics(Font),
Toolkit.getFontMetrics(Font)public void setPreferredSize(Dimension preferredSize)
preferredSize 為 null,則要求 UI 提供首選大小。
Component 中的 setPreferredSizepreferredSize - 新的首選大小,或者為 nullComponent.getPreferredSize(),
Component.isPreferredSizeSet()public Dimension getPreferredSize()
preferredSize 已設置為一個非 null 值,則返回該值。如果 UI 委託的 getPreferredSize 方法返回一個非 null 值,則返回該值;否則服從元件的佈局管理器。
Container 中的 getPreferredSizepreferredSize 屬性的值setPreferredSize(java.awt.Dimension),
ComponentUIpublic void setMaximumSize(Dimension maximumSize)
getMaximumSize 的後續調用將始終返回此值;而不要求元件的 UI 計算它。將最大大小設置為 null 可恢復預設行為。
Component 中的 setMaximumSizemaximumSize - 一個套件含所需最大允許大小的 DimensiongetMaximumSize()public Dimension getMaximumSize()
null 值,則返回該值。如果 UI 委託的 getMaximumSize 方法返回一個非 null 值,則返回該值;否則服從元件的佈局管理器。
Container 中的 getMaximumSizemaximumSize 屬性的值setMaximumSize(java.awt.Dimension),
ComponentUIpublic void setMinimumSize(Dimension minimumSize)
getMinimumSize 的後續調用將始終返回此值;不會要求元件的 UI 計算它。將最小大小設置為 null 可恢復預設行為。
Component 中的 setMinimumSizeminimumSize - 此元件新的最小大小getMinimumSize()public Dimension getMinimumSize()
null 值,則返回該值。如果 UI 委託的 getMinimumSize 方法返回一個非 null 值,則返回該值;否則服從元件的佈局管理器。
Container 中的 getMinimumSizeminimumSize 屬性的值setMinimumSize(java.awt.Dimension),
ComponentUI
public boolean contains(int x,
int y)
Component 中的 containsx - 該點的 x 坐標y - 該點的 y 坐標
Component.contains(int, int),
ComponentUIpublic void setBorder(Border border)
Border 物件負責定義元件的 insets(直接對元件覆寫所有 insets 設置),並且可選地呈現這些 insets 範圍內的邊框裝飾。要為 swing 元件創建有裝飾的和無裝飾的區域(例如邊距和填充),應該使用邊框(而不是 insets)。在單個元件中可使用復合邊框來巢狀多個邊框。
雖然從技術上講可以在繼承自 JComponent 的所有物件上設置邊框,但是很多標準 Swing 元件的外觀實作無法正常地使用使用者設置的邊框。通常,如果希望在標準的 Swing 元件而不是 JPanel 或 JLabel 上設置邊框時,建議將元件放入 JPanel 中,並在 JPanel 上設置邊框。
這是一個綁定屬性。
border - 要為此元件呈現的邊框Border,
CompoundBorderpublic Border getBorder()
null。
setBorder(javax.swing.border.Border)public Insets getInsets()
super.getInsets。
Container 中的 getInsetssetBorder(javax.swing.border.Border)public Insets getInsets(Insets insets)
Insets 物件。如有可能,將重用傳入的 Insets 物件。但是不能假定調用這些方法將返回相同的物件。覆寫此物件內所有現有值。如果 insets 為 null,則此方法將分派一個新的 insets。
insets - Insets 物件,它可以被重用
Insets 物件getInsets()public float getAlignmentY()
Container.getAlignmentY 以返回水平對齊方式。
Container 中的 getAlignmentYalignmentY 屬性的值setAlignmentY(float),
Component.getAlignmentY()public void setAlignmentY(float alignmentY)
alignmentY - 新的水平對齊方式getAlignmentY()public float getAlignmentX()
Container.getAlignmentX 以返回垂直對齊方式。
Container 中的 getAlignmentXalignmentX 屬性的值setAlignmentX(float),
Component.getAlignmentX()public void setAlignmentX(float alignmentX)
alignmentX - 新的垂直對齊方式getAlignmentX()public void setInputVerifier(InputVerifier inputVerifier)
inputVerifier - 新的輸入校驗器InputVerifierpublic InputVerifier getInputVerifier()
inputVerifier 屬性InputVerifierpublic Graphics getGraphics()
Graphics 物件,然後在該物件上調用操作,以便繪製元件。
Component 中的 getGraphicsComponent.paint(java.awt.Graphics)public void setDebugGraphicsOptions(int debugOptions)
debugOptions - 確定元件應該如何顯示資訊;為下列選項之一:
ExternalWindow,顯示在 View 的脫屏緩衝區上執行的操作。
debugOptions 按位或運算的結果public int getDebugGraphicsOptions()
ExternalWindow,顯示在 View 的脫屏緩衝區上執行的操作。
setDebugGraphicsOptions(int)
public void registerKeyboardAction(ActionListener anAction,
String aCommand,
KeyStroke aKeyStroke,
int aCondition)
getActionMap() 和 getInputMap()。例如,要將 KeyStroke aKeyStroke 綁定到 Action anAction,現在使用:
component.getInputMap().put(aKeyStroke, aCommand); component.getActionMap().put(aCommmand, anAction);以上假定您希望綁定適用於
WHEN_FOCUSED。要為其他焦點狀態註冊綁定,可使帶有整數參數的 getInputMap 方法。
註冊一個新的鍵盤動作。如果出現一個與 aKeyStroke 比對的鍵事件並且 aCondition 經過了驗證,則調用 anAction。KeyStroke 物件定義了鍵盤鍵和一個或多個修改鍵(alt、shift、ctrl、meta)的特定組合。
aCommand 將在傳遞的事件(如果指定)中進行設置。
aCondition 可以為:
- WHEN_FOCUSED
- 僅在發生鍵擊、同時元件具有焦點時才調用該動作。
- WHEN_IN_FOCUSED_WINDOW
- 當發生鍵擊、同時元件具有焦點時,或者元件處於具有焦點的視窗中時調用該動作。注意,該元件無需是該視窗的直接子級,它可以處於視窗包含層次結構中的任意位置。換句話說,只要視窗中的任意 元件具有焦點,就調用向此元件註冊的動作。
- WHEN_ANCESTOR_OF_FOCUSED_COMPONENT
- 當發生鍵擊、同時元件具有焦點時,或者該元件是具有焦點的元件的祖先時調用該動作。
這種鍵擊和條件的組合允許您為指定的鍵擊+修改鍵組合定義高層級別(語義)的動作事件(使用 KeyStroke 類別),並導向具有焦點的元件的父元件或子元件,或者該元件本身。換句話說,在任意的元件層次結構中,可將任意的鍵組合導向層次結構中的適當元件,並調用具體的方法(通常通過適配器物件的方式)。
如果已經使用相同的 charCode 和修改鍵為接收容器註冊了某個動作,則 anAction 將取代該動作。
anAction - 要註冊的 ActionaCommand - 要在傳遞的事件中設置的命令aKeyStroke - 與動作綁定的 KeyStrokeaCondition - 要符合的條件,見上文KeyStroke
public void registerKeyboardAction(ActionListener anAction,
KeyStroke aKeyStroke,
int aCondition)
getActionMap() 和 getInputMap()。
public void unregisterKeyboardAction(KeyStroke aKeyStroke)
ActionMap/InputMap 中移除該綁定,或者在 InputMap 中放置一個虛擬(dummy)綁定。從 InputMap 中移除綁定允許父 InputMap 中的綁定處於啟動狀態,而在 InputMap 中放置一個 dummy 綁定則可以有效地禁止綁定發生。
註銷一個鍵盤動作。此動作將從 ActionMap(如果存在)和 InputMap 中移除綁定。
public KeyStroke[] getRegisteredKeyStrokes()
KeyStrokes。
KeyStroke 物件陣列registerKeyboardAction(java.awt.event.ActionListener, java.lang.String, javax.swing.KeyStroke, int)public int getConditionForKeyStroke(KeyStroke aKeyStroke)
對於 Java 2 平臺 v1.3,一個 KeyStroke 可與多個條件關聯。例如,'a' 可以和兩個條件 WHEN_FOCUSED 和 WHEN_IN_FOCUSED_WINDOW 綁定。
public ActionListener getActionForKeyStroke(KeyStroke aKeyStroke)
ActionListener 物件public void resetKeyboardActions()
InputMaps 和 ActionMap 中的所有綁定。此操作可以移除所有的本地綁定,並允許保留父 InputMap/ActionMaps 中定義的綁定(通常在第二層定義 UI)。
public final void setInputMap(int condition,
InputMap map)
map 的 condition 條件下要使用的 InputMap。null 意味著不想使用任何綁定(包括來自 UI 的綁定)。這不會重新安裝 UI InputMap(如果有)。condition 為以下值之一:
WHEN_IN_FOCUSED_WINDOW
WHEN_FOCUSED
WHEN_ANCESTOR_OF_FOCUSED_COMPONENT
condition 是 WHEN_IN_FOCUSED_WINDOW 且 map 不是 ComponentInputMap,則拋出 IllegalArgumentException。類似地,如果 condition 不是上述值之一,則拋出 IllegalArgumentException。
condition - 上述值之一map - 用於給定條件的 InputMap
IllegalArgumentException - 如果 condition 是 WHEN_IN_FOCUSED_WINDOW 且 map 不是 ComponentInputMap 的實例;或者 condition 不是上面指定的合法值之一public final InputMap getInputMap(int condition)
condition 中所使用的 InputMap。
condition - WHEN_IN_FOCUSED_WINDOW、WHEN_FOCUSED、WHEN_ANCESTOR_OF_FOCUSED_COMPONENT 之一
condition 的 InputMappublic final InputMap getInputMap()
InputMap。這是 getInputMap(WHEN_FOCUSED) 的一個便捷方法。
InputMappublic final void setActionMap(ActionMap am)
ActionMap 設置為 am。此方法不會將 am 的父級設置成 UI 的 ActionMap(如果有),由調用者決定是否這樣做。
am - 新的 ActionMappublic final ActionMap getActionMap()
KeyStroke 綁定觸發何種 Action 的 ActionMap。除非另行設置,否則返回的 ActionMap 將 UI 的 ActionMap 設置為其父級。
ActionMap
public int getBaseline(int width,
int height)
LayoutManager,以便沿元件的基線對齊元件。返回值小於 0 表示此元件沒有合理的基線,並且 LayoutManager 不應該根據該元件的基線來對齊此元件。
此方法調用相同名稱的 ComponentUI 方法。如果此元件不具有 ComponentUI,則返回 -1。如果返回大於等於 0 的值,則該元件有一個對於任何大於等於最小大小的大小均有效的基線,並且可以使用 getBaselineResizeBehavior 確定基線如何隨大小發生更改。
Component 中的 getBaselinewidth - 適合基線的寬度height - 適合基線的高度
IllegalArgumentException - 如果 width 或 height < 0getBaselineResizeBehavior(),
FontMetricspublic Component.BaselineResizeBehavior getBaselineResizeBehavior()
此方法調用相同名稱的 ComponentUI 方法。如果此元件不具有 ComponentUI,則返回 BaselineResizeBehavior.OTHER。子類別不應該返回 null;如果無法計算基線,則返回 BaselineResizeBehavior.OTHER。調用者應該首先使用 getBaseline 詢問基線,如果返回值大於等於 0,則使用此方法。此方法返回一個 BaselineResizeBehavior.OTHER 以外的值是可以接受的,即使 getBaseline 返回一個小於 0 的值。
Component 中的 getBaselineResizeBehaviorgetBaseline(int, int)@Deprecated public boolean requestDefaultFocus()
FocusTraversalPolicy.getDefaultComponent(Container).requestFocus() 取代
請求此 JComponent FocusTraversalPolicy 的預設 Component 上的焦點。如果此 JComponent 是焦點循環根,則使用其 FocusTraversalPolicy。否則,使用此 JComponent 的焦點循環根祖先的 FocusTraversalPolicy。
FocusTraversalPolicy.getDefaultComponent(java.awt.Container)public void setVisible(boolean aFlag)
Component.setVisible。
Component 中的 setVisibleaFlag - true 使該元件可見;false 使其不可見Component.isVisible()public void setEnabled(boolean enabled)
註:禁用某個元件不會禁用其子元件。
註:禁用輕量元件不會阻止其接收 MouseEvent。
Component 中的 setEnabledenabled - 如果應該啟用此元件,則為 true;否則為 falseComponent.isEnabled(),
Component.isLightweight()public void setForeground(Color fg)
Component 中的 setForegroundfg - 所需的前景 ColorComponent.getForeground()public void setBackground(Color bg)
JComponent 或 ComponentUI 實作的子類別使用。JComponent 的直接子類別必須覆寫 paintComponent 以遵守此屬性。
由外觀決定是否遵守此屬性,某些外觀可以選擇忽略它。
Component 中的 setBackgroundbg - 所需的背景 ColorComponent.getBackground(),
setOpaque(boolean)public void setFont(Font font)
Container 中的 setFontfont - 此元件所需的 FontComponent.getFont()public static Locale getDefaultLocale()
Locale。setDefaultLocale(java.util.Locale),
Component.getLocale(),
Component.setLocale(java.util.Locale)public static void setDefaultLocale(Locale l)
l - 所需的預設 Locale,用於新的元件。getDefaultLocale(),
Component.getLocale(),
Component.setLocale(java.util.Locale)protected void processComponentKeyEvent(KeyEvent e)
實作此方法不執行任何操作。如果子類別本身處理某些鍵事件,則這些子類別通常覆寫此方法。如果事件已經處理,則使用該事件。
protected void processKeyEvent(KeyEvent e)
processKeyEvent 以處理事件。
Component 中的 processKeyEvente - 按鍵事件KeyEvent,
KeyListener,
KeyboardFocusManager,
DefaultKeyboardFocusManager,
Component.processEvent(java.awt.AWTEvent),
Component.dispatchEvent(java.awt.AWTEvent),
Component.addKeyListener(java.awt.event.KeyListener),
Component.enableEvents(long),
Component.isShowing()
protected boolean processKeyBinding(KeyStroke ks,
KeyEvent e,
int condition,
boolean pressed)
KeyEvent e 而調用此方法處理 ks 的鍵綁定。此方法將獲取適當的 InputMap、獲取綁定、從 ActionMap 獲取動作,然後(如果找到該動作並且已啟用該元件)調用 notifyAction 來通知該動作。
ks - 被查詢的 KeyStrokee - KeyEventcondition - 為下列值之一:
pressed - 如果鍵被按下,則為 true
public void setToolTipText(String text)
有關更多資訊,請參閱 The Java Tutorial 中的 How to Use Tool Tips。
text - 要顯示的字元串;如果 text 為 null,則關閉此元件的工具提示TOOL_TIP_TEXT_KEYpublic String getToolTipText()
setToolTipText 所設置的工具提示字元串。
TOOL_TIP_TEXT_KEYpublic String getToolTipText(MouseEvent event)
setToolTipText 設置的任意字元串。如果元件提供了進一步擴展的 API,以支持不同位置的不同工具提示,則應覆寫此方法。
public Point getToolTipLocation(MouseEvent event)
null,則 Swing 將選擇某個位置。預設實作返回 null。
event - 導致 ToolTipManager 顯示工具提示的 MouseEvent
nullpublic Point getPopupLocation(MouseEvent event)
null,則外觀將選擇一個合適的位置。
event - 觸發顯示彈出式選單的 MouseEvent;如果不是因鼠標事件而顯示彈出式選單,則為 null
JPopupMenu 的位置,或者返回 nullpublic JToolTip createToolTip()
JToolTip 實例。元件通常不覆寫此方法,但是可將其用於以不同的方式顯示不同的工具提示。
JToolTippublic void scrollRectToVisible(Rectangle aRect)
scrollRectToVisible() 訊息轉發到 JComponent 的父元件。可執行該請求的元件(如 JViewport)會覆寫此方法並執行滾動。
aRect - 可見的 RectangleJViewportpublic void setAutoscrolls(boolean autoscrolls)
autoscrolls 屬性。如果為 true,則在將鼠標拖動到元件的邊界外並且鼠標移動已暫停(但是繼續按下鼠標按鍵)時,人為地產生鼠標拖動事件。該人為事件使得拖動動作似乎在跨越元件的邊界時所建立的方向上得以恢復。支持自動滾動的元件必須處理 mouseDragged 事件,通過調用帶有一個套件含鼠標事件位置的矩形的 scrollRectToVisible 來完成。所有支持項選擇以及通常在 JScrollPane(JTable、JList、JTree、JTextArea 和 JEditorPane)中顯示的 Swing 元件都將以這種方式處理鼠標拖動事件。要在任何其他元件中啟用自動滾動,可添加一個調用 scrollRectToVisible 的鼠標移動偵聽器。例如,給定 JPanel、myPanel:
MouseMotionListener doScrollRectToVisible = new MouseMotionAdapter() {
public void mouseDragged(MouseEvent e) {
Rectangle r = new Rectangle(e.getX(), e.getY(), 1, 1);
((JPanel)e.getSource()).scrollRectToVisible(r);
}
};
myPanel.addMouseMotionListener(doScrollRectToVisible);
autoScrolls 屬性的預設值是 false。
autoscrolls - 如果為 true,則在將鼠標拖動到元件的邊界外並且繼續按下鼠標按鍵時,產生人為鼠標拖動事件;否則為 falsegetAutoscrolls(),
JViewport,
JScrollPanepublic boolean getAutoscrolls()
autoscrolls 屬性。
autoscrolls 屬性的值JViewport,
setAutoscrolls(boolean)public void setTransferHandler(TransferHandler newHandler)
transferHandler 屬性;如果該元件不支持資料傳輸操作,則為 null。
如果 newHandler 不為 null 並且系統屬性 suppressSwingDropSupport 不為 true,則此方法將在 JComponent 上安裝一個 DropTarget。該系統屬性的預設值為 false,所以將添加一個 DropTarget。
有關更多資訊,請參閱 The Java Tutorial 中的 How to Use Drag and Drop and Data Transfer 一節。
newHandler - 在元件之間傳輸資料的機制TransferHandler,
getTransferHandler()public TransferHandler getTransferHandler()
transferHandler 屬性。
transferHandler 屬性的值TransferHandler,
setTransferHandler(javax.swing.TransferHandler)protected void processMouseEvent(MouseEvent e)
MouseListener 物件來完成,有關此方法的完整描述,請參閱 Component.processMouseEvent(MouseEvent)。
Component 中的 processMouseEvente - 鼠標事件Component.processMouseEvent(java.awt.event.MouseEvent)protected void processMouseMotionEvent(MouseEvent e)
Component 中的 processMouseMotionEvente - the MouseEventMouseEvent@Deprecated public void enable()
java.awt.Component.setEnabled(boolean) 取代。
Component 中的 enable@Deprecated public void disable()
java.awt.Component.setEnabled(boolean) 取代。
Component 中的 disablepublic AccessibleContext getAccessibleContext()
JComponent 關聯的 AccessibleContext。此基礎類別所實作的方法返回 null。擴展 JComponent 的類別應該實作此方法,以返回與子類別關聯的 AccessibleContext。
Component 中的 getAccessibleContextJComponent 的 AccessibleContextpublic final Object getClientProperty(Object key)
putClientProperty 添加的屬性才返回非 null 值。
key - 查詢的內容
nullputClientProperty(java.lang.Object, java.lang.Object)
public final void putClientProperty(Object key,
Object value)
get/putClientProperty 方法提供對每個實例小型雜湊表的存取。調用者可以使用 get/putClientProperty 為另一個模組所創建的元件添加註釋。例如,佈局管理器可能以此方式來存儲每個子元件的各種約束。例如:
componentA.putClientProperty("to the left of", componentB);
如果值為 null,則此方法將移除該屬性。通過 PropertyChange 事件報告客戶端屬性的更改。該屬性的名稱(為了 PropertyChange 事件)是 key.toString()。
clientProperty 字典不支持對 JComponent 的大範圍擴展,也不適於在設計新元件時用做子類別化的替代方法。
key - 新的客戶端屬性鍵value - 新的客戶端屬性值,如果為 null,則此方法將移除該屬性getClientProperty(java.lang.Object),
Container.addPropertyChangeListener(java.beans.PropertyChangeListener)
public void setFocusTraversalKeys(int id,
Set<? extends AWTKeyStroke> keystrokes)
Component.setFocusTraversalKeys(int, java.util.Set extends java.awt.AWTKeyStroke>)。
Container 中的 setFocusTraversalKeysid - KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS、KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS 或 KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS 之一keystrokes - 指定操作的 AWTKeyStroke Set
IllegalArgumentException - 如果 id 不是 KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS、KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS 或 KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS 之一、keystrokes 套件含 null、keystroke 中的 Object 不是 AWTKeyStroke、任意 keystroke 表示一個 KEY_TYPED 事件,或者任意 keystroke 已經映射到此 Component 的另一個焦點遍歷操作KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS,
KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS,
KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYSpublic static boolean isLightweightComponent(Component c)
@Deprecated
public void reshape(int x,
int y,
int w,
int h)
Component.setBounds(int, int, int, int) 取代。
移動此元件並調整其大小。
Component 中的 reshapex - 新的水平位置y - 新的垂直位置w - 新的寬度h - 新的高度Component.setBounds(int, int, int, int)public Rectangle getBounds(Rectangle rv)
rv 中並返回 rv。如果 rv 為 null,則分派一個新的 Rectangle。如果調用者不希望在堆積(heap)空間上分派一個新的 Rectangle 物件,則這種 getBounds 是很有用的。
Component 中的 getBoundsrv - 返回值,被修改為該元件的邊界
rv;如果 rv 為 null,則返回具有此元件邊界的新建 Rectanglepublic Dimension getSize(Dimension rv)
rv 中並返回 rv。如果 rv 為 null,則分派一個新的 Dimension 物件。如果調用者不希望在堆積(heap)空間上分派一個新的 Dimension 物件,則這種 getSize 是很有用的。
Component 中的 getSizerv - 返回值,被修改為該元件的大小
rvpublic Point getLocation(Point rv)
rv 中並返回 rv。如果 rv 為 null,則分派一個新的 Point。如果調用者不希望在堆積(heap)空間上分派一個新的 Point 物件,則這種 getLocation 是很有用的。
Component 中的 getLocationrv - 返回值,被修改為該元件的位置
rvpublic int getX()
component.getBounds().x 或 component.getLocation().x,因為它不會導致任何堆積(heap)空間分派。
Component 中的 getXpublic int getY()
component.getBounds().y 或 component.getLocation().y,因為它不會導致任何堆積(heap)空間分派。
Component 中的 getYpublic int getWidth()
component.getBounds().width 或 component.getSize().width,因為它不會導致任何堆積(heap)空間分派。
Component 中的 getWidthpublic int getHeight()
component.getBounds().height 或 component.getSize().height,因為它不會導致任何堆積(heap)空間分派。
Component 中的 getHeightpublic boolean isOpaque()
不透明元件將每個像素繪製在其矩形邊界內。透明的元件則僅繪製部分像素或者不繪製任何像素,允許其底層像素“透視出來”。因此,沒有完全繪製其像素的元件則提供了一定程度的透明度。
保證總是完全繪製其內容的子類別應該覆寫此方法並返回 true。
Component 中的 isOpaquesetOpaque(boolean)public void setOpaque(boolean isOpaque)
對於 JComponent 而言,此屬性的預設值是 false。但是對於大多數標準的 JComponent 子類別(如 JButton 和 JTree),此屬性的預設值與外觀有關。
isOpaque - 如果此元件應該是不透明的,則為 trueisOpaque()public void computeVisibleRect(Rectangle visibleRect)
Component 的“可見 rect 矩形”,即此元件及其所有祖先的可見矩形的交集。返回值存儲在 visibleRect 中。
visibleRect - 根據此元件及其所有祖先的所有可見矩形交集而計算出的 Rectangle,這是此方法的返回值getVisibleRect()public Rectangle getVisibleRect()
Component 的“可見矩形”,即此元件的可見矩形 new Rectangle(0, 0, getWidth(), getHeight()) 及其所有祖先的可見矩形的交集。
public void firePropertyChange(String propertyName,
boolean oldValue,
boolean newValue)
Component 中的 firePropertyChangepropertyName - 其值已更改的屬性oldValue - 該屬性以前的值newValue - 該屬性的新值
public void firePropertyChange(String propertyName,
int oldValue,
int newValue)
Component 中的 firePropertyChangepropertyName - 其值已更改的屬性oldValue - 該屬性以前的值newValue - 該屬性的新值
public void firePropertyChange(String propertyName,
char oldValue,
char newValue)
Component 複製的描述
Component 中的 firePropertyChangepropertyName - 已改變的屬性的程式名稱oldValue - 該屬性的舊值(char 型別)newValue - 該屬性的新值(char 型別)Component.firePropertyChange(java.lang.String, java.lang.Object, java.lang.Object)
protected void fireVetoableChange(String propertyName,
Object oldValue,
Object newValue)
throws PropertyVetoException
VetoableChangeListener 發送相應的 PropertyChangeEvent 時可以調用此方法。
propertyName - 對其進行偵聽的屬性名稱oldValue - 該屬性的舊值newValue - 該屬性的新值
PropertyVetoException - 如果元件禁止設置該屬性public void addVetoableChangeListener(VetoableChangeListener listener)
VetoableChangeListener。為所有屬性註冊該偵聽器。
listener - 要添加的 VetoableChangeListenerpublic void removeVetoableChangeListener(VetoableChangeListener listener)
VetoableChangeListener。此方法移除了一個為所有屬性註冊的 VetoableChangeListener。
listener - 要移除的 VetoableChangeListenerpublic VetoableChangeListener[] getVetoableChangeListeners()
VetoableChangeListener;如果當前沒有註冊任何可否決更改偵聽器,則返回一個空陣列addVetoableChangeListener(java.beans.VetoableChangeListener),
removeVetoableChangeListener(java.beans.VetoableChangeListener)public Container getTopLevelAncestor()
Window 或 Applet);如果尚未將此元件添加到任意容器中,則返回 null。
Container;如果不在任何容器中,則返回 nullpublic void addAncestorListener(AncestorListener listener)
listener,從而當元件或其任意祖先移動,或者變得可見或不可見時該偵聽器將收到 AncestorEvent。從套件含層次結構中添加或移除元件或其祖先時,也發送這些事件。
listener - 要註冊的 AncestorListenerAncestorEventpublic void removeAncestorListener(AncestorListener listener)
listener,使其不再接收 AncestorEvent。
listener - 要移除的 AncestorListeneraddAncestorListener(javax.swing.event.AncestorListener)public AncestorListener[] getAncestorListeners()
AncestorListener;如果當前沒有註冊任何祖先偵聽器,則返回一個空陣列addAncestorListener(javax.swing.event.AncestorListener),
removeAncestorListener(javax.swing.event.AncestorListener)public <T extends EventListener> T[] getListeners(Class<T> listenerType)
JComponent 上註冊為 FooListener 的所有物件所組成的陣列。FooListener 是使用 addFooListener 方法註冊的。
可以使用 class 文字值來指定 listenerType 參數,如 FooListener.class。例如,可以使用以下程式碼來查詢 JComponent c 的鼠標偵聽器:
MouseListener[] mls = (MouseListener[])(c.getListeners(MouseListener.class));如果不存在這樣的偵聽器,則此方法將返回一個空陣列。
Container 中的 getListenerslistenerType - 所請求的偵聽器的型別;此參數應該指定一個從 java.util.EventListener 繼承的介面
FooListener 的所有物件所組成的陣列;如果尚未添加這樣的偵聽器,則返回一個空陣列
ClassCastException - 如果 listenerType 未指定一個實作 java.util.EventListener 的類別或介面getVetoableChangeListeners(),
getAncestorListeners()public void addNotify()
KeyboardAction 事件偵聽器設置父元件鏈。
Container 中的 addNotifyregisterKeyboardAction(java.awt.event.ActionListener, java.lang.String, javax.swing.KeyStroke, int)public void removeNotify()
KeyboardAction。
Container 中的 removeNotifyregisterKeyboardAction(java.awt.event.ActionListener, java.lang.String, javax.swing.KeyStroke, int)
public void repaint(long tm,
int x,
int y,
int width,
int height)
Component 中的 repainttm - 不使用此參數x - 髒區的 x 值y - 髒區的 y 值width - 髒區的寬度height - 髒區的高度Component.isShowing(),
RepaintManager.addDirtyRegion(javax.swing.JComponent, int, int, int, int)public void repaint(Rectangle r)
r - 套件含髒區的 RectangleComponent.isShowing(),
RepaintManager.addDirtyRegion(javax.swing.JComponent, int, int, int, int)public void revalidate()
調用 invalidate 並將此元件的 validateRoot 添加到需要驗證的元件列表中。指派完當前所有未完成的事件後進行驗證。換句話說,調用此方法後,將驗證瀏覽此元件的套件含層次結構時找到的第一個 validateRoot(如果有)。預設情況下,對 JRootPane、JScrollPane 和 JTextField 調用 isValidateRoot 返回 true。
當屬性值更改,從而影響此元件的大小、位置或內部佈局時,就對此元件自動調用此方法。這種自動更新不同於 AWT,因為通常來說,程序不再需要調用 validate 來獲得要更新的 GUI 的內容。
Component.invalidate(),
Container.validate(),
isValidateRoot(),
RepaintManager.addInvalidComponent(javax.swing.JComponent)public boolean isValidateRoot()
revalidate 將導致從此根開始對整棵階層樹進行驗證。預設情況下返回 false。JScrollPane 覆寫此方法並返回 true。
revalidate(),
Component.invalidate(),
Container.validate()public boolean isOptimizedDrawingEnabled()
JComponent 子類別(如 JLayeredPane)應該覆寫此方法以返回 false。
public void paintImmediately(int x,
int y,
int w,
int h)
極少需要調用此方法。在大多數情況下,調用 repaint 更為高效,repaint 會推遲實際的繪製並將多餘的請求壓縮為單個 paint 調用。如果需要在指派當前事件的同時更新顯示,則此方法很有用。
x - 要繪製區域的 x 值y - 要繪製區域的 y 值w - 要繪製區域的寬度h - 要繪製區域的高度repaint(long, int, int, int, int)public void paintImmediately(Rectangle r)
r - 套件含要繪製區域的 Rectanglepublic void setDoubleBuffered(boolean aFlag)
Component,並且還緩衝了它的某個祖先,則將使用該祖先緩衝區。
aFlag - 如果為 true,則設置此元件使用雙緩衝區進行緩衝public boolean isDoubleBuffered()
Component 中的 isDoubleBufferedpublic JRootPane getRootPane()
JRootPane 祖先。
JRootPane;如果未找到 JRootPane,則為 nullprotected String paramString()
JComponent 的字元串表示形式。此方法僅在除錯時使用,對於各個實作,所返回字元串的內容和格式可能有所不同。返回的字元串可以為空,但不可以為 null。
Container 中的 paramStringJComponent 的字元串表示形式
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
| 上一個類別 下一個類別 | 框架 無框架 | |||||||||
| 摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 | |||||||||
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。