|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
| 上一個類別 下一個類別 | 框架 無框架 | |||||||||
| 摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 | |||||||||
java.lang.Objectjava.awt.Component
public abstract class Component
component 是一個具有圖形表示能力的物件,可在螢幕上顯示,並可與使用者進行交互。典型圖形使用者介面中的按鈕、複選框和滾動條都是元件範例。
Component 類別是與選單不相關的 Abstract Window Toolkit 元件的抽象父級類別。還可以直接擴展類別 Component 來創建一個輕量級元件。輕量級元件是與本機不透明視窗不相關的元件。
Serializable 協議的 AWT 偵聽器,注意這一點很重要。如果具有偵聽器的 AWT 物件未標記為可序列化,則在 writeObject 時將會被丟棄。開發人員始終需要考慮序列化物件的意義。需要注意的一種情形是:
import java.awt.*;
import java.awt.event.*;
import java.io.Serializable;
class MyApp implements ActionListener, Serializable
{
BigObjectThatShouldNotBeSerializedWithAButton bigOne;
Button aButton = new Button();
MyApp()
{
// Oops, now aButton has a listener with a reference
// to bigOne!
aButton.addActionListener(this);
}
public void actionPerformed(ActionEvent e)
{
System.out.println("Hello There");
}
}
在此範例中,通過 aButton 自身進行序列化會使得 MyApp 及其參考的所有內容也都被序列化。問題是,原本沒打算序列化的偵聽器也被同時序列化了。為分別判斷 MyApp 和 ActionListener 是否可序列化,可使用一個巢狀類別,如下面範例所示:
import java.awt.*;
import java.awt.event.*;
import java.io.Serializable;
class MyApp java.io.Serializable
{
BigObjectThatShouldNotBeSerializedWithAButton bigOne;
Button aButton = new Button();
static class MyActionListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
System.out.println("Hello There");
}
}
MyApp()
{
aButton.addActionListener(new MyActionListener());
}
}
注:有關 AWT 和 Swing 所用繪製機制的更多資訊,包括如何編寫最高效的繪製程式碼的資訊,請參閱 Painting in AWT and Swing。
有關焦點子系統的詳情,請參閱 The Java Tutorial 中的 How to Use the Focus Subsystem 部分,以及 Focus Specification 瞭解更多資訊。
| 巢狀類別摘要 | |
|---|---|
protected class |
Component.AccessibleAWTComponent
用來為可存取性提供預設支持的 Component 的內部類別。 |
static class |
Component.BaselineResizeBehavior
常見方式的列舉,指示元件的基線可以隨大小的更改而更改。 |
protected class |
Component.BltBufferStrategy
用於將螢幕外的畫面以位圖傳輸方式傳輸到一個元件的內部類別。 |
protected class |
Component.FlipBufferStrategy
在元件上翻轉緩衝區的內部類別。 |
| 欄位摘要 | |
|---|---|
static float |
BOTTOM_ALIGNMENT
getAlignmentY 的易於使用的常數。 |
static float |
CENTER_ALIGNMENT
getAlignmentY 和 getAlignmentX 的易於使用的常數。 |
static float |
LEFT_ALIGNMENT
getAlignmentX 的易於使用的常數。 |
static float |
RIGHT_ALIGNMENT
getAlignmentX 的易於使用的常數。 |
static float |
TOP_ALIGNMENT
getAlignmentY() 的易於使用的常數。 |
| 從介面 java.awt.image.ImageObserver 繼承的欄位 |
|---|
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH |
| 建構子摘要 | |
|---|---|
protected |
Component()
建構一個新元件。 |
| 方法摘要 | ||
|---|---|---|
boolean |
action(Event evt,
Object what)
已過時。 從 JDK version 1.1 開始,應該將此元件作為元件(觸發動作事件)上的 ActionListener 來註冊。 |
|
void |
add(PopupMenu popup)
向元件添加指定的彈出選單。 |
|
void |
addComponentListener(ComponentListener l)
添加指定的元件偵聽器,以接收發自此元件的元件事件。 |
|
void |
addFocusListener(FocusListener l)
添加指定的焦點偵聽器,以便當此元件獲得輸入焦點時能夠接收發自此元件的焦點事件。 |
|
void |
addHierarchyBoundsListener(HierarchyBoundsListener l)
添加指定的層次結構邊界偵聽器,以便當此容器所屬的層次結構發生變化時接收發自此元件的層次結構邊界事件。 |
|
void |
addHierarchyListener(HierarchyListener l)
添加指定的層次結構偵聽器,以便當此容器所屬的層次結構發生變化時接收發自此元件的層次結構變化事件。 |
|
void |
addInputMethodListener(InputMethodListener l)
添加指定的輸入方法偵聽器,以接收發自此元件的輸入方法事件。 |
|
void |
addKeyListener(KeyListener l)
添加指定的按鍵偵聽器,以接收發自此元件的按鍵事件。 |
|
void |
addMouseListener(MouseListener l)
添加指定的鼠標偵聽器,以接收發自此元件的鼠標事件。 |
|
void |
addMouseMotionListener(MouseMotionListener l)
添加指定的鼠標移動偵聽器,以接收發自此元件的鼠標移動事件。 |
|
void |
addMouseWheelListener(MouseWheelListener l)
添加指定的鼠標滾輪偵聽器,以接收發自此元件的鼠標滾輪事件。 |
|
void |
addNotify()
通過將此 Component 連接到一個本機螢幕資源使其成為可顯示的。 |
|
void |
addPropertyChangeListener(PropertyChangeListener listener)
向偵聽器列表添加一個 PropertyChangeListener。 |
|
void |
addPropertyChangeListener(String propertyName,
PropertyChangeListener listener)
向指定屬性的偵聽器列表添加一個 PropertyChangeListener。 |
|
void |
applyComponentOrientation(ComponentOrientation orientation)
設置此元件及其包含的所有元件的 ComponentOrientation 屬性。 |
|
boolean |
areFocusTraversalKeysSet(int id)
返回是否為此 Component 顯式定義了給定焦點遍歷操作的焦點遍歷鍵 Set。 |
|
Rectangle |
bounds()
已過時。 從 JDK version 1.1 開始,由 getBounds() 取代。 |
|
int |
checkImage(Image image,
ImageObserver observer)
返回指定圖像螢幕表示的建構狀態。 |
|
int |
checkImage(Image image,
int width,
int height,
ImageObserver observer)
返回指定圖像螢幕表示的建構狀態。 |
|
protected AWTEvent |
coalesceEvents(AWTEvent existingEvent,
AWTEvent newEvent)
將正發送的事件與現有事件組合在一起。 |
|
boolean |
contains(int x,
int y)
檢查元件是否“包含”指定的點,其中 x 和 y 是相對於此元件的坐標系定義的。 |
|
boolean |
contains(Point p)
檢查元件是否“包含”指定的點,其中該點的 x 和 y 坐標是相對於此元件的坐標系定義的。 |
|
Image |
createImage(ImageProducer producer)
根據指定的圖像產生器創建一幅圖像。 |
|
Image |
createImage(int width,
int height)
創建一幅用於雙緩衝的、可在螢幕外繪製的圖像。 |
|
VolatileImage |
createVolatileImage(int width,
int height)
創建一幅用於雙緩衝的、可變的、可在螢幕外繪製的圖像。 |
|
VolatileImage |
createVolatileImage(int width,
int height,
ImageCapabilities caps)
創建一幅具有給定能力的、可變的、可在螢幕外繪製的圖像。 |
|
void |
deliverEvent(Event e)
已過時。 從 JDK version 1.1 開始,由 dispatchEvent(AWTEvent e) 取代。 |
|
void |
disable()
已過時。 從 JDK version 1.1 開始,由 setEnabled(boolean) 取代。 |
|
protected void |
disableEvents(long eventsToDisable)
禁用由傳遞給此元件的指定事件遮罩碼參數所定義的事件。 |
|
void |
dispatchEvent(AWTEvent e)
為元件或其子元件之一指派事件。 |
|
void |
doLayout()
提示佈局管理器佈局此元件。 |
|
void |
enable()
已過時。 從 JDK version 1.1 開始,由 setEnabled(boolean) 取代。 |
|
void |
enable(boolean b)
已過時。 從 JDK version 1.1 開始,由 setEnabled(boolean) 取代。 |
|
protected void |
enableEvents(long eventsToEnable)
啟用由傳遞給此元件的指定事件遮罩碼參數所定義的事件。 |
|
void |
enableInputMethods(boolean enable)
啟用或禁用此元件的輸入方法支持。 |
|
protected void |
firePropertyChange(String propertyName,
boolean oldValue,
boolean newValue)
支持報告布林屬性的綁定屬性改變。 |
|
void |
firePropertyChange(String propertyName,
byte oldValue,
byte newValue)
報告綁定屬性的改變。 |
|
void |
firePropertyChange(String propertyName,
char oldValue,
char newValue)
報告綁定屬性的改變。 |
|
void |
firePropertyChange(String propertyName,
double oldValue,
double newValue)
報告綁定屬性的改變。 |
|
void |
firePropertyChange(String propertyName,
float oldValue,
float newValue)
報告綁定屬性的改變。 |
|
protected void |
firePropertyChange(String propertyName,
int oldValue,
int newValue)
支持報告整數屬性的綁定屬性改變。 |
|
void |
firePropertyChange(String propertyName,
long oldValue,
long newValue)
報告綁定屬性的改變。 |
|
protected void |
firePropertyChange(String propertyName,
Object oldValue,
Object newValue)
支持報告 Object 屬性的綁定屬性改變。 |
|
void |
firePropertyChange(String propertyName,
short oldValue,
short newValue)
報告綁定屬性的改變。 |
|
AccessibleContext |
getAccessibleContext()
獲取與此 Component 相關的 AccessibleContext。 |
|
float |
getAlignmentX()
返回 x 軸的對齊方式。 |
|
float |
getAlignmentY()
返回 y 軸的對齊方式。 |
|
Color |
getBackground()
獲取元件的背景色。 |
|
int |
getBaseline(int width,
int height)
返回基線。 |
|
Component.BaselineResizeBehavior |
getBaselineResizeBehavior()
返回一個指示元件的基線如何隨大小發生更改的列舉。 |
|
Rectangle |
getBounds()
以 Rectangle 物件的形式獲取元件的邊界。 |
|
Rectangle |
getBounds(Rectangle rv)
將元件的邊界存儲到“返回值”rv 中並返回 rv。 |
|
ColorModel |
getColorModel()
獲取用於在輸出設備上顯示元件的 ColorModel 實例。 |
|
Component |
getComponentAt(int x,
int y)
確定此元件或其直接子元件之一是否包含(x,y)位置,並且如果是,則返回包含該位置的元件。 |
|
Component |
getComponentAt(Point p)
返回包含指定點的元件或子元件。 |
|
ComponentListener[] |
getComponentListeners()
返回在此元件上所有已註冊的元件偵聽器的陣列。 |
|
ComponentOrientation |
getComponentOrientation()
檢索將用於排序此元件內的元素或文本的語言敏感的方向。 |
|
Cursor |
getCursor()
獲取元件中的鼠標集合。 |
|
DropTarget |
getDropTarget()
獲取與此 Component 相關的 DropTarget。 |
|
Container |
getFocusCycleRootAncestor()
返回作為此 Component 焦點遍歷循環的焦點循環根的 Container。 |
|
FocusListener[] |
getFocusListeners()
返回在此元件上所有已註冊的焦點偵聽器的陣列。 |
|
Set<AWTKeyStroke> |
getFocusTraversalKeys(int id)
返回此 Component 的給定遍歷操作的焦點遍歷鍵 Set。 |
|
boolean |
getFocusTraversalKeysEnabled()
返回是否已為此 Component 啟用了焦點遍歷鍵。 |
|
Font |
getFont()
獲取元件的字體。 |
|
FontMetrics |
getFontMetrics(Font font)
獲取指定字體的字體規格。 |
|
Color |
getForeground()
獲取元件的前景色。 |
|
Graphics |
getGraphics()
為元件創建一個圖形上下文。 |
|
GraphicsConfiguration |
getGraphicsConfiguration()
獲取與此 Component 相關的 GraphicsConfiguration。 |
|
int |
getHeight()
返回元件的當前高度。 |
|
HierarchyBoundsListener[] |
getHierarchyBoundsListeners()
返回在此元件上所有已註冊的層次結構邊界偵聽器的陣列。 |
|
HierarchyListener[] |
getHierarchyListeners()
返回在此元件上所有已註冊的層次結構偵聽器的陣列。 |
|
boolean |
getIgnoreRepaint()
|
|
InputContext |
getInputContext()
獲取此元件使用的輸入上下文,用於處理在此元件中輸入文本時與輸入方法的通信。 |
|
InputMethodListener[] |
getInputMethodListeners()
返回在此元件上所有已註冊的輸入方法偵聽器的陣列。 |
|
InputMethodRequests |
getInputMethodRequests()
獲取輸入方法請求處理程序,該處理程序支持此元件輸入方法發出的請求。 |
|
KeyListener[] |
getKeyListeners()
返回在此元件上所有已註冊的按鍵偵聽器的陣列。 |
|
|
getListeners(Class<T> listenerType)
返回一個當前在此 Component 上作為 FooListener 註冊的所有物件的陣列。 |
|
Locale |
getLocale()
獲取元件的語言環境。 |
|
Point |
getLocation()
獲取元件的位置,形式是指定元件左上角的一個點。 |
|
Point |
getLocation(Point rv)
將元件的 x,y 原點存儲到“返回值” rv 中並返回 rv。 |
|
Point |
getLocationOnScreen()
獲取元件的位置,形式是一個指定螢幕坐標空間中元件左上角的一個點。 |
|
Dimension |
getMaximumSize()
獲取元件的最大大小。 |
|
Dimension |
getMinimumSize()
獲取元件的最小大小。 |
|
MouseListener[] |
getMouseListeners()
返回在此元件上所有已註冊的鼠標偵聽器的陣列。 |
|
MouseMotionListener[] |
getMouseMotionListeners()
返回在此元件上所有已註冊的鼠標移動偵聽器的陣列。 |
|
Point |
getMousePosition()
如果此 Component 正好位於鼠標指針下,則返回鼠標指針在該 Component 的坐標空間中的位置;否則返回 null。 |
|
MouseWheelListener[] |
getMouseWheelListeners()
返回在此元件上所有已註冊的鼠標滾輪偵聽器的陣列。 |
|
String |
getName()
獲取元件的名稱。 |
|
Container |
getParent()
獲取此元件的父級。 |
|
java.awt.peer.ComponentPeer |
getPeer()
已過時。 從 JDK version 1.1 開始,程序不應直接操作同位體;由 boolean isDisplayable() 取代。 |
|
Dimension |
getPreferredSize()
獲取元件的首選大小。 |
|
PropertyChangeListener[] |
getPropertyChangeListeners()
返回在此元件上所有已註冊的屬性更改偵聽器的陣列。 |
|
PropertyChangeListener[] |
getPropertyChangeListeners(String propertyName)
返回與指定屬性相關聯的所有偵聽器的陣列。 |
|
Dimension |
getSize()
以 Dimension 物件的形式返回元件的大小。 |
|
Dimension |
getSize(Dimension rv)
將元件的寬度/高度存儲到“返回值”rv 中並返回 rv。 |
|
Toolkit |
getToolkit()
獲取此元件的工具套件。 |
|
Object |
getTreeLock()
獲取此元件用於 AWT 元件階層樹和佈局操作的鎖定物件(擁有執行緒同步監視器的物件)。 |
|
int |
getWidth()
返回元件的當前寬度。 |
|
int |
getX()
返回元件原點的當前 x 坐標。 |
|
int |
getY()
返回元件原點的當前 y 坐標。 |
|
boolean |
gotFocus(Event evt,
Object what)
已過時。 從 JDK version 1.1 開始,由 processFocusEvent(FocusEvent) 取代。 |
|
boolean |
handleEvent(Event evt)
已過時。 從 JDK version 1.1 開始,由 processEvent(AWTEvent) 取代。 |
|
boolean |
hasFocus()
如果此 Component 是焦點所有者,則返回 true。 |
|
void |
hide()
已過時。 從 JDK version 1.1 開始,由 setVisible(boolean) 取代。 |
|
boolean |
imageUpdate(Image img,
int infoflags,
int x,
int y,
int w,
int h)
圖像已改變時重繪元件。 |
|
boolean |
inside(int x,
int y)
已過時。 從 JDK version 1.1 開始,由 contains(int, int) 取代。 |
|
void |
invalidate()
使此元件無效。 |
|
boolean |
isBackgroundSet()
返回是否已為此元件顯示地設置了背景色。 |
|
boolean |
isCursorSet()
返回是否已為此元件顯示地設置了鼠標。 |
|
boolean |
isDisplayable()
確定此元件是否可以顯示。 |
|
boolean |
isDoubleBuffered()
如果將此元件繪製到一個隨後複製到螢幕上的螢幕外圖像(“緩衝區”),則返回 true。 |
|
boolean |
isEnabled()
確定此元件是否已啟用。 |
|
boolean |
isFocusable()
返回此 Component 是否可以獲得焦點。 |
|
boolean |
isFocusCycleRoot(Container container)
返回指定的 Container 是否為此 Component 焦點遍歷循環的焦點循環根。 |
|
boolean |
isFocusOwner()
如果此 Component 是焦點所有者,則返回 true。 |
|
boolean |
isFocusTraversable()
已過時。 從 1.4 開始,由 isFocusable() 取代。 |
|
boolean |
isFontSet()
返回是否已為此元件顯示地設置了字體。 |
|
boolean |
isForegroundSet()
返回是否已為此元件顯式地設置了前景色。 |
|
boolean |
isLightweight()
輕量級元件沒有本機工具套件同位體。 |
|
boolean |
isMaximumSizeSet()
如果已將最大大小設置為非 null 值,則返回 true,否則返回 false。 |
|
boolean |
isMinimumSizeSet()
返回是否已用非 null 值調用了 setMinimumSize。 |
|
boolean |
isOpaque()
如果元件是完全不透明的,則返回 true,預設返回 false。 |
|
boolean |
isPreferredSizeSet()
如果已將首選大小設置為非 null 值,則返回 true,否則返回 false。 |
|
boolean |
isShowing()
確定此元件是否在螢幕上顯示。 |
|
boolean |
isValid()
確定元件是否有效。 |
|
boolean |
isVisible()
確定此元件在其父容器可見時是否應該可見。 |
|
boolean |
keyDown(Event evt,
int key)
已過時。 從 JDK version 1.1 開始,由 processKeyEvent(KeyEvent) 取代。 |
|
boolean |
keyUp(Event evt,
int key)
已過時。 從 JDK version 1.1 開始,由 processKeyEvent(KeyEvent) 取代。 |
|
void |
layout()
已過時。 從 JDK version 1.1 開始,由 doLayout() 取代。 |
|
void |
list()
將元件列表列印到標準系統輸出串流 System.out。 |
|
void |
list(PrintStream out)
將元件列表列印到指定的輸出串流。 |
|
void |
list(PrintStream out,
int indent)
將列表從指定的縮排開始列印到指定的列印串流。 |
|
void |
list(PrintWriter out)
將列表列印到指定的列印編寫器。 |
|
void |
list(PrintWriter out,
int indent)
將列表從指定的縮排開始列印到指定的列印編寫器。 |
|
Component |
locate(int x,
int y)
已過時。 從 JDK version 1.1 開始,由 getComponentAt(int, int) 取代。 |
|
Point |
location()
已過時。 從 JDK version 1.1 開始,由 getLocation() 取代。 |
|
boolean |
lostFocus(Event evt,
Object what)
已過時。 從 JDK version 1.1 開始,由 processFocusEvent(FocusEvent) 取代。 |
|
Dimension |
minimumSize()
已過時。 從 JDK version 1.1 開始,由 getMinimumSize() 取代。 |
|
boolean |
mouseDown(Event evt,
int x,
int y)
已過時。 從 JDK version 1.1 開始,由 processMouseEvent(MouseEvent) 取代。 |
|
boolean |
mouseDrag(Event evt,
int x,
int y)
已過時。 從 JDK version 1.1 開始,由 processMouseMotionEvent(MouseEvent) 取代。 |
|
boolean |
mouseEnter(Event evt,
int x,
int y)
已過時。 從 JDK version 1.1 開始,由 processMouseEvent(MouseEvent) 取代。 |
|
boolean |
mouseExit(Event evt,
int x,
int y)
已過時。 從 JDK version 1.1 開始,由 processMouseEvent(MouseEvent) 取代。 |
|
boolean |
mouseMove(Event evt,
int x,
int y)
已過時。 從 JDK version 1.1 開始,由 processMouseMotionEvent(MouseEvent) 取代。 |
|
boolean |
mouseUp(Event evt,
int x,
int y)
已過時。 從 JDK version 1.1 開始,由 processMouseEvent(MouseEvent) 取代。 |
|
void |
move(int x,
int y)
已過時。 從 JDK version 1.1 開始,由 setLocation(int, int) 取代。 |
|
void |
nextFocus()
已過時。 從 JDK version 1.1 開始,由 transferFocus() 取代。 |
|
void |
paint(Graphics g)
繪製此元件。 |
|
void |
paintAll(Graphics g)
繪製此元件及其所有子元件。 |
|
protected String |
paramString()
返回此元件狀態的字元串表示形式。 |
|
boolean |
postEvent(Event e)
已過時。 從 JDK version 1.1 開始,由 dispatchEvent(AWTEvent) 取代。 |
|
Dimension |
preferredSize()
已過時。 從 JDK version 1.1 開始,由 getPreferredSize() 取代。 |
|
boolean |
prepareImage(Image image,
ImageObserver observer)
準備一幅在此元件上呈現的圖像。 |
|
boolean |
prepareImage(Image image,
int width,
int height,
ImageObserver observer)
以指定的寬度和高度準備一幅在此元件上呈現的圖像。 |
|
void |
print(Graphics g)
列印此元件。 |
|
void |
printAll(Graphics g)
列印此元件及其所有子元件。 |
|
protected void |
processComponentEvent(ComponentEvent e)
處理元件上發生的元件事件,方法是將其指派到任意已註冊的 ComponentListener 物件。 |
|
protected void |
processEvent(AWTEvent e)
處理元件上發生的事件。 |
|
protected void |
processFocusEvent(FocusEvent e)
處理元件上發生的焦點事件,方法是將其指派到任意已註冊的 FocusListener 物件。 |
|
protected void |
processHierarchyBoundsEvent(HierarchyEvent e)
處理元件上發生的層次結構邊界事件,方法是將其指派到任意已註冊的 HierarchyBoundsListener 物件。 |
|
protected void |
processHierarchyEvent(HierarchyEvent e)
處理元件上發生的層次結構事件,方法是將其指派到任意已註冊的 HierarchyListener 物件。 |
|
protected void |
processInputMethodEvent(InputMethodEvent e)
處理元件上發生的輸入方法事件,方法是將其指派到任意已註冊的 InputMethodListener 物件。 |
|
protected void |
processKeyEvent(KeyEvent e)
處理元件上發生的按鍵事件,方法是將其指派到任意已註冊的 KeyListener 物件。 |
|
protected void |
processMouseEvent(MouseEvent e)
處理元件上發生的鼠標事件,方法是將其指派到任意已註冊的 MouseListener 物件。 |
|
protected void |
processMouseMotionEvent(MouseEvent e)
處理元件上發生的鼠標移動事件,方法是將其指派到任意已註冊的 MouseMotionListener 事件。 |
|
protected void |
processMouseWheelEvent(MouseWheelEvent e)
處理元件上發生的鼠標滾輪事件,方法是將其指派到任意已註冊的 MouseWheelListener 物件。 |
|
void |
remove(MenuComponent popup)
從元件移除指定的彈出選單。 |
|
void |
removeComponentListener(ComponentListener l)
移除指定的元件偵聽器,以便它不再接收發自此元件的元件事件。 |
|
void |
removeFocusListener(FocusListener l)
移除指定的焦點偵聽器,以便它不再接收發自此元件的焦點事件。 |
|
void |
removeHierarchyBoundsListener(HierarchyBoundsListener l)
移除指定的層次結構邊界偵聽器,以便它不再接收發自此元件的層次結構邊界事件。 |
|
void |
removeHierarchyListener(HierarchyListener l)
移除指定的層次結構偵聽器,以便它不再接收發自此元件的層次結構變化事件。 |
|
void |
removeInputMethodListener(InputMethodListener l)
移除指定的輸入方法偵聽器,以便它不再接收發自此元件的輸入方法事件。 |
|
void |
removeKeyListener(KeyListener l)
移除指定的按鍵偵聽器,以便它不再接收發自此元件的按鍵事件。 |
|
void |
removeMouseListener(MouseListener l)
移除指定的鼠標偵聽器,以便它不再接收發自此元件的鼠標事件。 |
|
void |
removeMouseMotionListener(MouseMotionListener l)
移除指定的鼠標移動偵聽器,以便它不再接收發自此元件的鼠標移動事件。 |
|
void |
removeMouseWheelListener(MouseWheelListener l)
移除指定的鼠標滾輪偵聽器,以便它不再接收發自此元件的鼠標滾輪事件。 |
|
void |
removeNotify()
通過銷毀此 Component 的本機螢幕資源使其成為不可顯示的。 |
|
void |
removePropertyChangeListener(PropertyChangeListener listener)
從偵聽器列表移除一個 PropertyChangeListener。 |
|
void |
removePropertyChangeListener(String propertyName,
PropertyChangeListener listener)
從指定屬性的偵聽器列表中移除一個 PropertyChangeListener。 |
|
void |
repaint()
重繪此元件。 |
|
void |
repaint(int x,
int y,
int width,
int height)
重繪元件的指定矩形區域。 |
|
void |
repaint(long tm)
重繪元件。 |
|
void |
repaint(long tm,
int x,
int y,
int width,
int height)
在 tm 毫秒內重繪元件的指定矩形區域。 |
|
void |
requestFocus()
請求此 Component 獲取輸入焦點,並且此 Component 的頂層祖先成為獲得焦點的 Window。 |
|
protected boolean |
requestFocus(boolean temporary)
請求此 Component 獲取輸入焦點,並且此 Component 的頂層祖先成為獲得焦點的 Window。 |
|
boolean |
requestFocusInWindow()
如果此 Component 的頂層祖先已經是獲得焦點的 Window,則請求此 Component 獲取輸入焦點。 |
|
protected boolean |
requestFocusInWindow(boolean temporary)
如果此 Component 的頂層祖先已經是獲得焦點的 Window,則請求此 Component 獲取輸入焦點。 |
|
void |
reshape(int x,
int y,
int width,
int height)
已過時。 從 JDK version 1.1 開始,由 setBounds(int, int, int, int) 取代。 |
|
void |
resize(Dimension d)
已過時。 從 JDK version 1.1 開始,由 setSize(Dimension) 取代。 |
|
void |
resize(int width,
int height)
已過時。 從 JDK version 1.1 開始,由 setSize(int, int) 取代。 |
|
void |
setBackground(Color c)
設置元件的背景色。 |
|
void |
setBounds(int x,
int y,
int width,
int height)
移動元件並調整其大小。 |
|
void |
setBounds(Rectangle r)
移動元件並調整其大小,使其符合新的有界矩形 r。 |
|
void |
setComponentOrientation(ComponentOrientation o)
設置語言敏感的方向,用於排序此元件內的元素或文本。 |
|
void |
setCursor(Cursor cursor)
為指定的鼠標設置鼠標圖像。 |
|
void |
setDropTarget(DropTarget dt)
將元件與 DropTarget 相關聯。 |
|
void |
setEnabled(boolean b)
根據參數 b 的值啟用或禁用此元件。 |
|
void |
setFocusable(boolean focusable)
將此 Component 的焦點狀態設置為指定值。 |
|
void |
setFocusTraversalKeys(int id,
Set<? extends AWTKeyStroke> keystrokes)
為此 Component 的給定遍歷操作設置焦點遍歷鍵。 |
|
void |
setFocusTraversalKeysEnabled(boolean focusTraversalKeysEnabled)
設置是否為此 Component 啟用焦點遍歷鍵。 |
|
void |
setFont(Font f)
設置元件的字體。 |
|
void |
setForeground(Color c)
設置元件的前景色。 |
|
void |
setIgnoreRepaint(boolean ignoreRepaint)
設置是否應該忽略從作業系統接受的繪製訊息。 |
|
void |
setLocale(Locale l)
設置元件的語言環境。 |
|
void |
setLocation(int x,
int y)
將元件移到新位置。 |
|
void |
setLocation(Point p)
將元件移到新位置。 |
|
void |
setMaximumSize(Dimension maximumSize)
將元件的最大大小設置為常數值。 |
|
void |
setMinimumSize(Dimension minimumSize)
將元件的最小大小設置為常數值。 |
|
void |
setName(String name)
將元件的名稱設置為指定的字元串。 |
|
void |
setPreferredSize(Dimension preferredSize)
將元件的首選大小設置為常數值。 |
|
void |
setSize(Dimension d)
調整元件的大小,使其寬度為 d.width,高度為 d.height。 |
|
void |
setSize(int width,
int height)
調整元件的大小,使其寬度為 width,高度為 height。 |
|
void |
setVisible(boolean b)
根據參數 b 的值顯示或隱藏此元件。 |
|
void |
show()
已過時。 從 JDK version 1.1 開始,由 setVisible(boolean) 取代。 |
|
void |
show(boolean b)
已過時。 從 JDK version 1.1 開始,由 setVisible(boolean) 取代。 |
|
Dimension |
size()
已過時。 從 JDK version 1.1 開始,由 getSize() 取代。 |
|
String |
toString()
返回此元件及其值的字元串表示形式。 |
|
void |
transferFocus()
將焦點轉移到下一個元件,就好像此 Component 曾是焦點所有者。 |
|
void |
transferFocusBackward()
將焦點轉移到前一個元件,就好像此 Component 曾是焦點所有者。 |
|
void |
transferFocusUpCycle()
將焦點向上轉移一個焦點遍歷循環。 |
|
void |
update(Graphics g)
更新元件。 |
|
void |
validate()
確保元件具有有效的佈局。 |
|
| 從類別 java.lang.Object 繼承的方法 |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| 欄位詳細資訊 |
|---|
public static final float TOP_ALIGNMENT
getAlignmentY() 的易於使用的常數。指定元件頂部對齊方式。
getAlignmentY(),
常數欄位值public static final float CENTER_ALIGNMENT
getAlignmentY 和 getAlignmentX 的易於使用的常數。指定元件居中對齊方式。
getAlignmentX(),
getAlignmentY(),
常數欄位值public static final float BOTTOM_ALIGNMENT
getAlignmentY 的易於使用的常數。指定元件底部對齊方式。
getAlignmentY(),
常數欄位值public static final float LEFT_ALIGNMENT
getAlignmentX 的易於使用的常數。指定元件左對齊方式。
getAlignmentX(),
常數欄位值public static final float RIGHT_ALIGNMENT
getAlignmentX 的易於使用的常數。指定元件右對齊方式。
getAlignmentX(),
常數欄位值| 建構子詳細資訊 |
|---|
protected Component()
Component 類別,以便創建不利用本機不透明視窗的輕量級元件。輕量級元件必須由元件階層樹中較高處的本機容器所承載(例如由 Frame 物件承載)。
| 方法詳細資訊 |
|---|
public String getName()
setName(java.lang.String)public void setName(String name)
name - 要成為元件名稱的字元串。getName()public Container getParent()
@Deprecated public java.awt.peer.ComponentPeer getPeer()
boolean isDisplayable() 取代。
public void setDropTarget(DropTarget dt)
DropTarget 相關聯。僅在已啟用 Component 時才接收放置。
dt - DropTargetisEnabled()public DropTarget getDropTarget()
Component 相關的 DropTarget。
public GraphicsConfiguration getGraphicsConfiguration()
Component 相關的 GraphicsConfiguration。如果尚未給 Component 分派指定的 GraphicsConfiguration,則返回該 Component 物件頂層容器的 GraphicsConfiguration。如果已經創建了 Component 但尚未添加到 Container 中,則此方法返回 null。
Component 使用的 GraphicsConfiguration,或者返回 nullpublic final Object getTreeLock()
public Toolkit getToolkit()
public boolean isValid()
true;否則返回 falsevalidate(),
invalidate()public boolean isDisplayable()
將元件添加到一個可顯示的套件含層次結構時,或者其包含層次結構變成可顯示時,該元件才成為可顯示的元件。當包含層次結構的祖先視窗被打包或變為可見時,它才成為可顯示的。
從可顯示的套件含層次結構中移除某個元件,或者該元件的套件含層次結構變成不可顯示時,該元件就成為不可顯示的元件。當包含層次結構的祖先視窗被移除時,它才變成不可顯示的。
true;否則返回 falseContainer.add(Component),
Window.pack(),
Window.show(),
Container.remove(Component),
Window.dispose()public boolean isVisible()
Frame 物件等頂層元件除外。
true;否則返回 falsesetVisible(boolean)
public Point getMousePosition()
throws HeadlessException
Component 正好位於鼠標指針下,則返回鼠標指針在該 Component 的坐標空間中的位置;否則返回 null。如果螢幕上未顯示 Component,那麼即使鼠標指針位於將顯示 Component 的區域之上,此方法也只是返回 null。如果 Component 被其他 Component 或本機視窗所部分或完全遮掩,則僅在鼠標指針位於 Component 未被遮掩的部分之上時,此方法才返回非 null 值。
對於 Container,如果鼠標位於 Container 本身之上或位於其後代之上時,則此方法返回非 null 值。如果需要將子容器排除在外,請使用 Container.getMousePosition(boolean)。
有時鼠標的準確坐標並不重要,唯一重要的是指定的 Component 是否位於鼠標指針下。如果此方法的返回值為 null,則鼠標指針不位於 Component 的上邊。
Component 的坐標,或者返回 null。
HeadlessException - 如果 GraphicsEnvironment.isHeadless() 返回 trueisShowing(),
Container.getMousePosition(boolean)public boolean isShowing()
註:有時無法檢測使用者是否可以實際看見 Component。這可能發生在以下情況時:
ScrollPane 中,但 Component 目前不在滾動窗格的視區中。
Component 被另一個 Component 或 Container 遮掩。
true;否則返回 falsesetVisible(boolean)public boolean isEnabled()
setEnabled 方法可以啟用或禁用元件。
true;否則返回 falsesetEnabled(boolean)public void setEnabled(boolean b)
b 的值啟用或禁用此元件。已啟用的元件可以回應使用者輸入並產生事件。預設情況下,元件最初是啟用的。
註:禁用輕量級元件不會阻止其接收 MouseEvents。
註:禁用重量級容器可以阻止此容器中的所有元件接收任何輸入事件。但是禁用重量級容器只影響此容器。
b - 如果為 true,則啟用此元件;否則禁用此元件isEnabled(),
isLightweight()@Deprecated public void enable()
setEnabled(boolean) 取代。
@Deprecated public void enable(boolean b)
setEnabled(boolean) 取代。
@Deprecated public void disable()
setEnabled(boolean) 取代。
public boolean isDoubleBuffered()
public void enableInputMethods(boolean enable)
enable - true 表示啟用,false 表示禁用processKeyEvent(java.awt.event.KeyEvent)public void setVisible(boolean b)
b 的值顯示或隱藏此元件。
b - 如果為 true,則顯示此元件;否則隱藏此元件isVisible()@Deprecated public void show()
setVisible(boolean) 取代。
@Deprecated public void show(boolean b)
setVisible(boolean) 取代。
@Deprecated public void hide()
setVisible(boolean) 取代。
public Color getForeground()
setForeground(java.awt.Color)public void setForeground(Color c)
c - 要成為此元件前景色的顏色;如果此參數為 null,則此元件繼承其父級的前景色getForeground()public boolean isForegroundSet()
false,則此元件繼承了其祖先的前景色。
true;否則返回 false。public Color getBackground()
setBackground(java.awt.Color)public void setBackground(Color c)
背景色對每個元件的影響各不相同,並且部分受背景色影響的元件在不同的作業系統之間可能有所不同。
c - 要成為此元件背景色的顏色;如果此參數為 null,則此元件繼承其父級的背景色getBackground()public boolean isBackgroundSet()
false,則此元件繼承了其祖先的背景色。
true;否則返回 false。public Font getFont()
MenuContainer 中的 getFontsetFont(java.awt.Font)public void setFont(Font f)
f - 要成為此元件字體的字體;如果此參數為 null,則此元件繼承其父級的字體getFont()public boolean isFontSet()
false,則此元件繼承了其祖先的字體。
true;否則返回 false。public Locale getLocale()
IllegalComponentStateException - 如果 Component 沒有其自己的語言環境,並且尚未添加到包含層次結構中(如果添加到包含層次結構中就可以從其包含父級確定語言環境)setLocale(java.util.Locale)public void setLocale(Locale l)
l - 要成為此元件語言環境的語言環境getLocale()public ColorModel getColorModel()
ColorModel 實例。
ColorModel,
ComponentPeer.getColorModel(),
Toolkit.getColorModel()public Point getLocation()
由於本機事件處理的非同步特性,所以此方法可能返回過時的值(例如,在快速連續調用 setLocation() 後)。為此,推薦獲得元件位置的方法是在 java.awt.event.ComponentListener.componentMoved() 內,在作業系統結束元件移動後調用它。
Point 實例,表示在元件父級坐標空間中元件邊界的左上角setLocation(int, int),
getLocationOnScreen()public Point getLocationOnScreen()
Point 實例,表示在螢幕坐標空間中元件邊界的左上角
IllegalComponentStateException - 如果螢幕上未顯示該元件setLocation(int, int),
getLocation()@Deprecated public Point location()
getLocation() 取代。
public void setLocation(int x,
int y)
x 和 y 參數來指定新位置的左上角。
x - 父級坐標空間中新位置左上角的 x 坐標y - 父級坐標空間中新位置左上角的 y 坐標getLocation(),
setBounds(int, int, int, int)
@Deprecated
public void move(int x,
int y)
setLocation(int, int) 取代。
public void setLocation(Point p)
p 來指定新位置的左上角。在父級坐標空間中給出點 p。
p - 定義新位置左上角的點,在此元件的父級坐標空間中給出getLocation(),
setBounds(int, int, int, int)public Dimension getSize()
Dimension 物件的形式返回元件的大小。Dimension 物件的 height 欄位包含此元件的高度,而 Dimension 物件的 width 欄位則包含此元件的寬度。
Dimension 物件setSize(int, int)@Deprecated public Dimension size()
getSize() 取代。
public void setSize(int width,
int height)
width,高度為 height。
width - 元件的新寬度,單位是像素height - 元件的新高度,單位是像素getSize(),
setBounds(int, int, int, int)
@Deprecated
public void resize(int width,
int height)
setSize(int, int) 取代。
public void setSize(Dimension d)
d.width,高度為 d.height。
d - 指定元件新大小的尺寸setSize(int, int),
setBounds(int, int, int, int)@Deprecated public void resize(Dimension d)
setSize(Dimension) 取代。
public Rectangle getBounds()
Rectangle 物件的形式獲取元件的邊界。邊界指定此元件的寬度、高度和相對於其父級的位置。
setBounds(int, int, int, int),
getLocation(),
getSize()@Deprecated public Rectangle bounds()
getBounds() 取代。
public void setBounds(int x,
int y,
int width,
int height)
x 和 y 指定左上角的新位置,由 width 和 height 指定新的大小。
x - 元件的新 x 坐標y - 元件的新 y 坐標width - 元件的新 widthheight - 元件的新 heightgetBounds(),
setLocation(int, int),
setLocation(Point),
setSize(int, int),
setSize(Dimension)
@Deprecated
public void reshape(int x,
int y,
int width,
int height)
setBounds(int, int, int, int) 取代。
public void setBounds(Rectangle r)
r。由 r.x 和 r.y 指定元件的新位置,由 r.width 和 r.height 指定元件的新大小
r - 此元件的新的有界矩形getBounds(),
setLocation(int, int),
setLocation(Point),
setSize(int, int),
setSize(Dimension)public int getX()
component.getBounds().x 或 component.getLocation().x 方法,因為它不會導致任何的堆積(heap)空間分派。
public int getY()
component.getBounds().y 或 component.getLocation().y 方法,因為它不會導致任何的堆積(heap)空間分派。
public int getWidth()
component.getBounds().width 或 component.getLocation().width 方法,因為它不會導致任何的堆積(heap)空間分派。
public int getHeight()
component.getBounds().height 或 component.getSize().height 方法,因為它不會導致任何的堆積(heap)空間分派。
public Rectangle getBounds(Rectangle rv)
null,則分派一個新的 Rectangle。如果調用者想要避免在堆積(heap)空間上分派一個新的 Rectangle 物件,則此版本的 getBounds 是很有用的。
rv - 返回值,被修改為元件的邊界
public Dimension getSize(Dimension rv)
null,則分派一個新的 Dimension 物件。如果調用者想要避免在堆積(heap)空間上分派一個新的 Dimension 物件,則此版本的 getSize 是很有用的。
rv - 返回值,被修改為元件的大小
public Point getLocation(Point rv)
null,則分派一個新的 Point。如果調用者想要避免在堆積(heap)空間上分派一個新的 Point 物件,則此版本的 getLocation 是很有用的。
rv - 返回值,被修改為元件的位置
public boolean isOpaque()
不透明元件將每個像素繪製在其矩形區域內。透明的元件則僅繪製其某些像素,允許其下面的像素“透視出來”。因此,沒有完全繪製其像素的元件則提供了一定程度的透明度。只有輕量級元件可以是透明的。
保證總是完全繪製其內容的子類別應該覆寫此方法並返回 true。所有“重量級”AWT 元件都是不透明的。
isLightweight()public boolean isLightweight()
Button 或 Scrollbar 那些元件以外,Component 和 Container 的子類別都是輕量級元件。所有 Swing 元件是輕量級元件。
如果元件是不可顯示的,那麼由於無法確定不可顯示的元件是輕量級還是重量級的,所以此方法總是返回 false。
isDisplayable()public void setPreferredSize(Dimension preferredSize)
getPreferredSize 的後續調用總是返回此值。將首選大小設置為 null 可還原預設的行為。
preferredSize - 新的首選大小,或者為 nullgetPreferredSize(),
isPreferredSizeSet()public boolean isPreferredSizeSet()
null 值,則返回 true,否則返回 false。
setPreferredSize,則返回 true。public Dimension getPreferredSize()
getMinimumSize(),
LayoutManager@Deprecated public Dimension preferredSize()
getPreferredSize() 取代。
public void setMinimumSize(Dimension minimumSize)
getMinimumSize 的後續調用總是返回此值。將最小大小設置為 null 可還原預設的行為。
minimumSize - 元件新的最小大小getMinimumSize(),
isMinimumSizeSet()public boolean isMinimumSizeSet()
setMinimumSize。
setMinimumSize,則返回 true。public Dimension getMinimumSize()
getPreferredSize(),
LayoutManager@Deprecated public Dimension minimumSize()
getMinimumSize() 取代。
public void setMaximumSize(Dimension maximumSize)
getMaximumSize 的後續調用總是返回此值。將最大大小設置為 null 可還原預設的行為。
maximumSize - 一個套件含所需最大允許大小的 DimensiongetMaximumSize(),
isMaximumSizeSet()public boolean isMaximumSizeSet()
null 值,則返回 true,否則返回 false。
maximumSize 是非 null 值,則返回 true,否則返回 falsepublic Dimension getMaximumSize()
getMinimumSize(),
getPreferredSize(),
LayoutManagerpublic float getAlignmentX()
public float getAlignmentY()
public int getBaseline(int width,
int height)
LayoutManager,以便沿元件的基線對齊元件。返回值小於 0 表示此元件沒有合理的基線,LayoutManager 不應該根據該元件的基線來對齊此元件。
預設實作返回 -1。支持基線的子類別應該適當覆寫。如果返回值 >= 0,則該元件有一個對於 >= 最小大小的任何大小有效的基線,並且可以使用 getBaselineResizeBehavior 確定基線如何隨大小發生更改。
width - 適合基線的寬度height - 適合基線的高度
IllegalArgumentException - 如果 width 或 height < 0getBaselineResizeBehavior(),
FontMetricspublic Component.BaselineResizeBehavior getBaselineResizeBehavior()
預設實作返回 BaselineResizeBehavior.OTHER。擁有基線的子類別應該適當覆寫。子類別永遠不應該返回 null;如果無法計算基線,則返回 BaselineResizeBehavior.OTHER。調用者應該首先查詢使用 getBaseline 的基線,如果返回值 >= 0,則使用此方法。如果此方法返回一個不同於 BaselineResizeBehavior.OTHER 的值,即使 getBaseline 返回一個小於 0 的值,也是可接受的。
getBaseline(int, int)public void doLayout()
validate(),
LayoutManager@Deprecated public void layout()
doLayout() 取代。
public void validate()
Container 實例上進行操作。
invalidate(),
doLayout(),
LayoutManager,
Container.validate()public void invalidate()
validate(),
doLayout(),
LayoutManagerpublic Graphics getGraphics()
null。
nullpaint(java.awt.Graphics)public FontMetrics getFontMetrics(Font font)
FontRenderContext 影響,並且此方法不返回任何字體規格,所以可以只返回適用於預設呈現上下文的規格,該規格可能與呈現在 Component 上時使用的規格不比對(如果使用 Graphics2D 功能)。相反,可以在呈現時通過調用 Graphics.getFontMetrics() 或 Font 類別上的文本測量 API 獲得規格。
font - 要獲得其字體規格的字體
font 的字體規格getFont(),
getPeer(),
ComponentPeer.getFontMetrics(Font),
Toolkit.getFontMetrics(Font)public void setCursor(Cursor cursor)
contains 方法為當前的鼠標位置返回 ture,並且此元件是可見的、可顯示的並且已啟用的,則顯示此鼠標圖像。設置 Container 的鼠標會導致在該容器的所有子元件內顯示該鼠標,那些具有非 null 的鼠標除外。
如果 Java 平臺實作和/或本機系統不支持更改鼠標鼠標形狀,則該方法可能不會產生任何視覺效果。
cursor - Cursor 類別定義的常數之一;如果此參數為 null,則此元件繼承其父級的鼠標isEnabled(),
isShowing(),
getCursor(),
contains(int, int),
Toolkit.createCustomCursor(java.awt.Image, java.awt.Point, java.lang.String),
Cursorpublic Cursor getCursor()
Cursor.DEFAULT_CURSOR。
setCursor(java.awt.Cursor)public boolean isCursorSet()
false,則此元件繼承了其祖先的鼠標。
true;否則返回 false。public void paint(Graphics g)
應該繪製元件的內容時調用此方法;例如首次顯示元件或者元件已損壞並需要修復時。Graphics 參數中的剪貼區矩形設置為需要繪製的區域。覆寫此方法的 Component 子類別不需要調用 super.paint(g)。
出於性能的考慮,首次顯示寬度或高度為 0 的 Component 時認為它不需要進行繪製,並且也不需要修復。
注:有關 AWT 和 Swing 所用繪製機制的更多資訊,包括如何編寫最高效的繪製程式碼的資訊,請參閱 Painting in AWT and Swing。
g - 用於繪製的圖像上下文update(java.awt.Graphics)public void update(Graphics g)
如果此元件不是輕量級元件,則為了回應對 repaint 的調用,AWT 調用 update 方法。可以假定未清除背景。
Component 的 update 方法調用此元件的 paint 方法來重繪此元件。為回應對 repaint 的調用而需要其他工作的子類別通常覆寫此方法。覆寫此方法的 Component 子類別應該調用 super.update(g),或者直接從其 update 方法中調用 paint(g)。
圖形上下文的原點,即它的(0,0)坐標點是此元件的左上角。圖形上下文的剪貼區域是此元件的邊界矩形。
注:有關 AWT 和 Swing 所用繪製機制的更多資訊,包括如何編寫最高效的繪製程式碼的資訊,請參閱 Painting in AWT and Swing。
g - 用於更新的指定上下文paint(java.awt.Graphics),
repaint()public void paintAll(Graphics g)
圖形上下文的原點,即它的(0,0)坐標點是此元件的左上角。圖形上下文的剪貼區域是此元件的邊界矩形。
g - 用於繪製的圖形上下文paint(java.awt.Graphics)public void repaint()
如果此元件是輕量級元件,則此方法會盡快調用此元件的 paint 方法。否則此方法會盡快調用此元件的 update 方法。
注:有關 AWT 和 Swing 所用繪製機制的更多資訊,包括如何編寫最高效的繪製程式碼的資訊,請參閱 Painting in AWT and Swing。
update(Graphics)public void repaint(long tm)
tm 毫秒內調用 paint。
注:有關 AWT 和 Swing 所用繪製機制的更多資訊,包括如何編寫最高效的繪製程式碼的資訊,請參閱 Painting in AWT and Swing。
tm - 更新前等待的最長時間(以毫秒為單位)paint(java.awt.Graphics),
update(Graphics)
public void repaint(int x,
int y,
int width,
int height)
如果此元件是輕量級元件,則此方法會盡快調用此元件的 paint 方法。否則此方法會盡快調用此元件的 update 方法。
注:有關 AWT 和 Swing 所用繪製機制的更多資訊,包括如何編寫最高效的繪製程式碼的資訊,請參閱 Painting in AWT and Swing。
x - x 坐標y - y 坐標width - 寬度height - 高度update(Graphics)
public void repaint(long tm,
int x,
int y,
int width,
int height)
tm 毫秒內重繪元件的指定矩形區域。
如果此元件是輕量級元件,則此方法調用此元件的 paint 方法。否則此方法調用此元件的 update 方法。
注:有關 AWT 和 Swing 所用繪製機制的更多資訊,包括如何編寫最高效的繪製程式碼的資訊,請參閱 Painting in AWT and Swing。
tm - 更新前等待的最長時間(以毫秒為單位)x - x 坐標y - y 坐標width - 寬度height - 高度update(Graphics)public void print(Graphics g)
此方法的預設實作調用 paint 方法。
圖形上下文的原點,即它的(0,0)坐標點是此元件的左上角。圖形上下文的剪貼區域是此元件的邊界矩形。
g - 用於繪製的圖形上下文paint(Graphics)public void printAll(Graphics g)
圖形上下文的原點,即它的(0,0)坐標點是此元件的左上角。圖形上下文的剪貼區域是此元件的邊界矩形。
g - 用於列印的圖形上下文print(Graphics)
public boolean imageUpdate(Image img,
int infoflags,
int x,
int y,
int w,
int h)
ImageObserver 的 imageUpdate 方法,該圖像是以前使用諸如 Graphics 的 drawImage 方法等此類別非同步例程請求的。有關此方法及其參數的更多資訊,請參閱 imageUpdate 的定義。
隨著有更多的可用圖像位,Component 的 imageUpdate 方法在元件上逐漸繪製圖像。
如果系統屬性 awt.image.incrementaldraw 丟失或其值為 true,則逐漸繪製圖像。如果該系統屬性為其他值,則在完全載入圖像後才繪製它。
另外,如果是逐漸繪製圖像,則將系統屬性 awt.image.redrawrate 的值解釋為一個整數,得到一個最快的重繪速率,單位是毫秒。如果該系統屬性丟失或無法解釋為一個整數,則重繪速率是每 100ms 一次。
x、y、width 和 height 參數的解釋取決於 infoflags 參數值。
ImageObserver 中的 imageUpdateimg - 正觀察的圖像infoflags - 有關更多資訊,請參閱 imageUpdatex - x 坐標y - y 坐標w - 寬度h - 高度
false;否則返回 true。ImageObserver,
Graphics.drawImage(Image, int, int, Color, java.awt.image.ImageObserver),
Graphics.drawImage(Image, int, int, java.awt.image.ImageObserver),
Graphics.drawImage(Image, int, int, int, int, Color, java.awt.image.ImageObserver),
Graphics.drawImage(Image, int, int, int, int, java.awt.image.ImageObserver),
ImageObserver.imageUpdate(java.awt.Image, int, int, int, int, int)public Image createImage(ImageProducer producer)
producer - 圖像產生器
public Image createImage(int width,
int height)
width - 指定的寬度height - 指定的高度
null。如果 GraphicsEnvironment.isHeadless() 返回 true,則始終發生這種情況。isDisplayable(),
GraphicsEnvironment.isHeadless()
public VolatileImage createVolatileImage(int width,
int height)
width - 指定的寬度。height - 指定的高度。
null。如果 GraphicsEnvironment.isHeadless() 返回 true,則始終發生這種情況。VolatileImage,
isDisplayable(),
GraphicsEnvironment.isHeadless()
public VolatileImage createVolatileImage(int width,
int height,
ImageCapabilities caps)
throws AWTException
VolatileImage 介面管理該圖像。
width - 指定的寬度。height - 指定的高度。caps - 圖像的能力
AWTException - 如果無法創建具有指定能力的圖像VolatileImage
public boolean prepareImage(Image image,
ImageObserver observer)
image - 準備進行螢幕表示的 Imageobserver - 圖像準備就緒時所要通知的 ImageObserver 物件
true;否則返回 false
public boolean prepareImage(Image image,
int width,
int height,
ImageObserver observer)
圖像資料由另一個執行緒非同步下載並產生適當縮放的圖像螢幕表示。
image - 準備進行螢幕表示的 Image 實例width - 所需螢幕表示的寬度height - 所需螢幕表示的高度observer - 圖像準備就緒時所要通知的 ImageObserver 物件
true;否則返回 falseImageObserver
public int checkImage(Image image,
ImageObserver observer)
此方法不會使圖像開始載入。應用程序必須使用 prepareImage 方法強制載入圖像。
可在 ImageObserver 介面的討論中找到有關此方法返回的標誌的資訊。
image - 正檢查其狀態的 Image 物件observer - 圖像準備就緒時所要通知的 ImageObserver 物件
ImageObserver 的標誌按位進行 OR 運算後的結果,指示圖像的哪些資訊是當前可用的prepareImage(Image, int, int, java.awt.image.ImageObserver),
Toolkit.checkImage(Image, int, int, java.awt.image.ImageObserver),
ImageObserver
public int checkImage(Image image,
int width,
int height,
ImageObserver observer)
此方法不會使圖像開始載入。應用程序必須使用 prepareImage 方法強制載入圖像。
Component 的 checkImage 方法調用其同位體的 checkImage 方法來計算標誌。如果此元件還沒有同位體,則調用元件工具套件的 checkImage 方法。
可在 ImageObserver 介面的討論中找到有關此方法返回的標誌的資訊。
image - 正檢查其狀態的 Imagewidth - 要檢查其狀態的縮放圖像的寬度height - 要檢查其狀態的縮放圖像的高度observer - 圖像準備就緒時所要通知的 ImageObserver 物件
ImageObserver 的標誌按位進行 OR 運算後的結果,指示圖像的哪些資訊是當前可用的prepareImage(Image, int, int, java.awt.image.ImageObserver),
Toolkit.checkImage(Image, int, int, java.awt.image.ImageObserver),
ImageObserverpublic void setIgnoreRepaint(boolean ignoreRepaint)
這是很有用的,例如正在全屏網要中運行並且需要更佳的性能,或者使用頁面翻轉作為緩衝策略時。
getIgnoreRepaint(),
Canvas.createBufferStrategy(int),
Window.createBufferStrategy(int),
BufferStrategy,
GraphicsDevice.setFullScreenWindow(java.awt.Window)public boolean getIgnoreRepaint()
setIgnoreRepaint(boolean)
public boolean contains(int x,
int y)
x 和 y 是相對於此元件的坐標系定義的。
x - 該點的 x 坐標y - 該點的 y 坐標getComponentAt(int, int)
@Deprecated
public boolean inside(int x,
int y)
public boolean contains(Point p)
p - 點getComponentAt(Point)
public Component getComponentAt(int x,
int y)
如果(x,y)坐標位置處於元件邊界框的內部,則 Component 的 locate 方法只是簡單地返回元件本身;否則返回 null。
x - x 坐標y - y 坐標
nullcontains(int, int)
@Deprecated
public Component locate(int x,
int y)
public Component getComponentAt(Point p)
p - 點contains(int, int)@Deprecated public void deliverEvent(Event e)
dispatchEvent(AWTEvent e) 取代。
public final void dispatchEvent(AWTEvent e)
Component 啟用的 1.1 型別的事件,在返回前要調用 processEvent。
e - 事件@Deprecated public boolean postEvent(Event e)
MenuContainer 中的 postEventpublic void addComponentListener(ComponentListener l)
l 為 null,則不會拋出異常並且不執行動作。
有關 AWT 的執行緒模型的細節資訊,請參閱 AWT 執行緒問題。
l - 元件偵聽器ComponentEvent,
ComponentListener,
removeComponentListener(java.awt.event.ComponentListener),
getComponentListeners()public void removeComponentListener(ComponentListener l)
l 為 null,則不會拋出異常並且不執行動作。
有關 AWT 的執行緒模型的細節資訊,請參閱 AWT 執行緒問題。
l - 元件偵聽器ComponentEvent,
ComponentListener,
addComponentListener(java.awt.event.ComponentListener),
getComponentListeners()public ComponentListener[] getComponentListeners()
ComponentListener,如果當前沒有註冊的元件偵聽器,則返回一個空陣列addComponentListener(java.awt.event.ComponentListener),
removeComponentListener(java.awt.event.ComponentListener)public void addFocusListener(FocusListener l)
l 為 null,則不會拋出異常並且不執行動作。
有關 AWT 的執行緒模型的細節資訊,請參閱 AWT 執行緒問題。
l - 焦點偵聽器FocusEvent,
FocusListener,
removeFocusListener(java.awt.event.FocusListener),
getFocusListeners()public void removeFocusListener(FocusListener l)
l 為 null,則不會拋出異常並且不執行動作。
有關 AWT 的執行緒模型的細節資訊,請參閱 AWT 執行緒問題。
l - 焦點偵聽器FocusEvent,
FocusListener,
addFocusListener(java.awt.event.FocusListener),
getFocusListeners()public FocusListener[] getFocusListeners()
FocusListener,如果當前沒有註冊的焦點偵聽器,則返回一個空陣列addFocusListener(java.awt.event.FocusListener),
removeFocusListener(java.awt.event.FocusListener)public void addHierarchyListener(HierarchyListener l)
l 為 null,則不會拋出異常並且不執行動作。
有關 AWT 的執行緒模型的細節資訊,請參閱 AWT 執行緒問題。
l - 層次結構偵聽器HierarchyEvent,
HierarchyListener,
removeHierarchyListener(java.awt.event.HierarchyListener),
getHierarchyListeners()public void removeHierarchyListener(HierarchyListener l)
l 為 null,則不會拋出異常並且不執行動作。
有關 AWT 的執行緒模型的細節資訊,請參閱 AWT 執行緒問題。
l - 層次結構偵聽器HierarchyEvent,
HierarchyListener,
addHierarchyListener(java.awt.event.HierarchyListener),
getHierarchyListeners()public HierarchyListener[] getHierarchyListeners()
HierarchyListener,如果當前沒有註冊的層次結構偵聽器,則返回一個空陣列addHierarchyListener(java.awt.event.HierarchyListener),
removeHierarchyListener(java.awt.event.HierarchyListener)public void addHierarchyBoundsListener(HierarchyBoundsListener l)
l 為 null,則不會拋出異常並且不執行動作。
有關 AWT 的執行緒模型的細節資訊,請參閱 AWT 執行緒問題。
l - 層次結構邊界偵聽器HierarchyEvent,
HierarchyBoundsListener,
removeHierarchyBoundsListener(java.awt.event.HierarchyBoundsListener),
getHierarchyBoundsListeners()public void removeHierarchyBoundsListener(HierarchyBoundsListener l)
l 為 null,則不會拋出異常並且不執行動作。
有關 AWT 的執行緒模型的細節資訊,請參閱 AWT 執行緒問題。
l - 層次結構邊界偵聽器HierarchyEvent,
HierarchyBoundsListener,
addHierarchyBoundsListener(java.awt.event.HierarchyBoundsListener),
getHierarchyBoundsListeners()public HierarchyBoundsListener[] getHierarchyBoundsListeners()
HierarchyBoundsListener,如果當前沒有註冊的層次結構邊界偵聽器,則返回一個空陣列addHierarchyBoundsListener(java.awt.event.HierarchyBoundsListener),
removeHierarchyBoundsListener(java.awt.event.HierarchyBoundsListener)public void addKeyListener(KeyListener l)
有關 AWT 的執行緒模型的細節資訊,請參閱 AWT 執行緒問題。
l - 按鍵偵聽器。KeyEvent,
KeyListener,
removeKeyListener(java.awt.event.KeyListener),
getKeyListeners()public void removeKeyListener(KeyListener l)
l 為 null,則不會拋出異常並且不執行動作。
有關 AWT 的執行緒模型的細節資訊,請參閱 AWT 執行緒問題。
l - 按鍵偵聽器KeyEvent,
KeyListener,
addKeyListener(java.awt.event.KeyListener),
getKeyListeners()public KeyListener[] getKeyListeners()
KeyListener,如果當前沒有註冊的按鍵偵聽器,則返回一個空陣列addKeyListener(java.awt.event.KeyListener),
removeKeyListener(java.awt.event.KeyListener)public void addMouseListener(MouseListener l)
l 為 null,則不會拋出異常並且不執行動作。
有關 AWT 的執行緒模型的細節資訊,請參閱 AWT 執行緒問題。
l - 鼠標偵聽器MouseEvent,
MouseListener,
removeMouseListener(java.awt.event.MouseListener),
getMouseListeners()public void removeMouseListener(MouseListener l)
l 為 null,則不會拋出異常並且不執行動作。
有關 AWT 的執行緒模型的細節資訊,請參閱 AWT 執行緒問題。
l - 鼠標偵聽器MouseEvent,
MouseListener,
addMouseListener(java.awt.event.MouseListener),
getMouseListeners()public MouseListener[] getMouseListeners()
MouseListener,如果當前沒有註冊的鼠標偵聽器,則返回一個空陣列addMouseListener(java.awt.event.MouseListener),
removeMouseListener(java.awt.event.MouseListener)public void addMouseMotionListener(MouseMotionListener l)
l 為 null,則不會拋出異常並且不執行動作。
有關 AWT 的執行緒模型的細節資訊,請參閱 AWT 執行緒問題。
l - 鼠標移動偵聽器MouseEvent,
MouseMotionListener,
removeMouseMotionListener(java.awt.event.MouseMotionListener),
getMouseMotionListeners()public void removeMouseMotionListener(MouseMotionListener l)
l 為 null,則不會拋出異常並且不執行動作。
有關 AWT 的執行緒模型的細節資訊,請參閱 AWT 執行緒問題。
l - 鼠標移動偵聽器MouseEvent,
MouseMotionListener,
addMouseMotionListener(java.awt.event.MouseMotionListener),
getMouseMotionListeners()public MouseMotionListener[] getMouseMotionListeners()
MouseMotionListener,如果當前沒有註冊的鼠標移動偵聽器,則返回一個空陣列addMouseMotionListener(java.awt.event.MouseMotionListener),
removeMouseMotionListener(java.awt.event.MouseMotionListener)public void addMouseWheelListener(MouseWheelListener l)
有關如何指派鼠標滾輪事件的資訊,請參閱 MouseWheelEvent 的類別描述。
如果 l 為 null,則不會拋出異常並且不執行動作。
有關 AWT 的執行緒模型的細節資訊,請參閱 AWT 執行緒問題。
l - 鼠標滾輪偵聽器MouseWheelEvent,
MouseWheelListener,
removeMouseWheelListener(java.awt.event.MouseWheelListener),
getMouseWheelListeners()public void removeMouseWheelListener(MouseWheelListener l)
有關 AWT 的執行緒模型的細節資訊,請參閱 AWT 執行緒問題。
l - 鼠標滾輪偵聽器。MouseWheelEvent,
MouseWheelListener,
addMouseWheelListener(java.awt.event.MouseWheelListener),
getMouseWheelListeners()public MouseWheelListener[] getMouseWheelListeners()
MouseWheelListener,如果當前沒有註冊的鼠標滾輪偵聽器,則返回一個空陣列addMouseWheelListener(java.awt.event.MouseWheelListener),
removeMouseWheelListener(java.awt.event.MouseWheelListener)public void addInputMethodListener(InputMethodListener l)
getInputMethodRequests 並返回一個 InputMethodRequests 實例,則該元件只接收發自輸入方法的輸入方法事件。如果偵聽器 l 為 null,則不會拋出異常並且不執行動作。
有關 AWT 的執行緒模型的細節資訊,請參閱 AWT 執行緒問題。
l - 輸入方法偵聽器InputMethodEvent,
InputMethodListener,
removeInputMethodListener(java.awt.event.InputMethodListener),
getInputMethodListeners(),
getInputMethodRequests()public void removeInputMethodListener(InputMethodListener l)
l 為 null,則不會拋出異常並且不執行動作。
有關 AWT 的執行緒模型的細節資訊,請參閱 AWT 執行緒問題。
l - 輸入方法偵聽器InputMethodEvent,
InputMethodListener,
addInputMethodListener(java.awt.event.InputMethodListener),
getInputMethodListeners()public InputMethodListener[] getInputMethodListeners()
InputMethodListener,如果當前沒有註冊的輸入方法偵聽器,則返回一個空陣列addInputMethodListener(java.awt.event.InputMethodListener),
removeInputMethodListener(java.awt.event.InputMethodListener)public <T extends EventListener> T[] getListeners(Class<T> listenerType)
Component 上作為 FooListener 註冊的所有物件的陣列。FooListener 是使用 addFooListener 方法註冊的。
可以使用 class 文字值(如 FooListener.class)來指定 listenerType 參數。例如,可以使用以下程式碼來查詢 Component c 的鼠標偵聽器:
MouseListener[] mls = (MouseListener[])(c.getListeners(MouseListener.class));如果不存在這樣的偵聽器,則此方法返回一個空陣列。
listenerType - 所請求的偵聽器型別;此參數應該指定一個從 java.util.EventListener 繼承的介面
FooListener 註冊的所有物件的陣列,如果尚未添加這樣的偵聽器,則返回一個空陣列
ClassCastException - 如果 listenerType 未指定一個實作 java.util.EventListener 的類別或介面getComponentListeners(),
getFocusListeners(),
getHierarchyListeners(),
getHierarchyBoundsListeners(),
getKeyListeners(),
getMouseListeners(),
getMouseMotionListeners(),
getMouseWheelListeners(),
getInputMethodListeners(),
#getPropertyChangeListenerpublic InputMethodRequests getInputMethodRequests()
InputMethodRequests 實例。同時,還必須處理輸入方法事件。
nulladdInputMethodListener(java.awt.event.InputMethodListener)public InputContext getInputContext()
nullprotected final void enableEvents(long eventsToEnable)
將某個事件型別的偵聽器添加到該元件時,自動啟用該事件型別。
此方法只能由 Component 的子類別調用,該子類別需要將指定的事件型別傳遞給 processEvent,而不管是否已註冊了偵聽器。
eventsToEnable - 定義事件型別的事件遮罩碼processEvent(java.awt.AWTEvent),
disableEvents(long),
AWTEventprotected final void disableEvents(long eventsToDisable)
eventsToDisable - 定義事件型別的事件遮罩碼enableEvents(long)
protected AWTEvent coalesceEvents(AWTEvent existingEvent,
AWTEvent newEvent)
EventQueue.postEvent 調用此方法。此方法返回一個已組合的事件並用該事件取代現有事件(然後丟棄新事件),或者返回 null,表示沒有進行組合(將第二個事件添加到佇列的末尾)。如果未返回 null,則可以修改並返回任一事件參數,同時丟棄另一個參數。
此 coalesceEvents 實作可組合兩種事件型別:鼠標移動(和拖動)事件,以及繪製(和更新)事件。對於鼠標移動事件,總是返回最後一個事件,導致丟棄中間的移動。對於繪製事件,將新事件組合到同位體中的複雜 RepaintArea。總是返回新的 AWTEvent。
existingEvent - 已在 EventQueue 中的事件newEvent - 正發送到 EventQueue 中的事件
null 表明沒有進行組合protected void processEvent(AWTEvent e)
process<event type>Event 方法。
注意,如果事件參數為 null,則未指定行為並且可能導致異常。
e - 事件processComponentEvent(java.awt.event.ComponentEvent),
processFocusEvent(java.awt.event.FocusEvent),
processKeyEvent(java.awt.event.KeyEvent),
processMouseEvent(java.awt.event.MouseEvent),
processMouseMotionEvent(java.awt.event.MouseEvent),
processInputMethodEvent(java.awt.event.InputMethodEvent),
processHierarchyEvent(java.awt.event.HierarchyEvent),
processMouseWheelEvent(java.awt.event.MouseWheelEvent)protected void processComponentEvent(ComponentEvent e)
ComponentListener 物件。
如果元件上沒有啟用元件事件,則不調用此方法。發生下列之一時啟用元件事件:
addComponentListener 註冊了一個 ComponentListener 物件。
enableEvents 啟用了元件事件。
注意,如果事件參數為 null,則未指定行為並且可能導致異常。
e - 元件事件ComponentEvent,
ComponentListener,
addComponentListener(java.awt.event.ComponentListener),
enableEvents(long)protected void processFocusEvent(FocusEvent e)
FocusListener 物件。
如果元件上沒有啟用焦點事件,則不調用此方法。發生下列之一時啟用焦點事件:
addFocusListener 註冊了一個 FocusListener 物件。
enableEvents 啟用了焦點事件。
如果為某個 Component 啟用了焦點事件,則當前的 KeyboardFocusManager 確定是否應該將焦點事件指派到已註冊的 FocusListener 物件。如果未指派事件,則 KeyboardFocusManager 調用 Component 的 dispatchEvent 方法,此方法又調用 Component 的 processFocusEvent 方法。
如果為 Component 啟用了焦點事件,則用 FocusEvent 作為參數來調用 Component 的 dispatchEvent 方法將導致調用 Component 的 processFocusEvent 方法,而不管當前的 KeyboardFocusManager 如何。
注意,如果事件參數為 null,則未指定行為並且可能導致異常。
e - 焦點事件FocusEvent,
FocusListener,
KeyboardFocusManager,
addFocusListener(java.awt.event.FocusListener),
enableEvents(long),
dispatchEvent(java.awt.AWTEvent)protected void processKeyEvent(KeyEvent e)
KeyListener 物件。
如果元件上沒有啟用按鍵事件,則不調用此方法。發生下列之一時啟用按鍵事件:
addKeyListener 註冊了一個 KeyListener 物件。
enableEvents 啟用了按鍵事件。
如果為某個 Component 啟用了按鍵事件,則當前的 KeyboardFocusManager 確定是否應該將按鍵事件指派到已註冊的 KeyListener 物件。DefaultKeyboardFocusManager 不會為非焦點所有者或未顯示的 Component 指派按鍵事件。
從 J2SE 1.4 開始,已將 KeyEvent 重定向到焦點所有者。有關更多資訊,請參閱 Focus Specification。
只要元件正在顯示、已定焦、已啟用並且其上的按鍵事件已啟用,那麼使用 KeyEvent 作為參數來調用 Component 的 dispatchEvent 方法將導致調用 Component 的 processKeyEvent 方法,而不管當前的 KeyboardFocusManager 如何。
注意,如果事件參數為 null,則未指定行為並且可能導致異常。
e - 按鍵事件KeyEvent,
KeyListener,
KeyboardFocusManager,
DefaultKeyboardFocusManager,
processEvent(java.awt.AWTEvent),
dispatchEvent(java.awt.AWTEvent),
addKeyListener(java.awt.event.KeyListener),
enableEvents(long),
isShowing()protected void processMouseEvent(MouseEvent e)
MouseListener 物件。
如果元件上沒有啟用鼠標事件,則不調用此方法。發生下列之一時啟用鼠標事件:
addMouseListener 註冊了一個 MouseListener 物件。
enableEvents 啟用了鼠標事件。
注意,如果事件參數為 null,則未指定行為並且可能導致異常。
e - 鼠標事件MouseEvent,
MouseListener,
addMouseListener(java.awt.event.MouseListener),
enableEvents(long)protected void processMouseMotionEvent(MouseEvent e)
MouseMotionListener 事件。
如果元件上沒有啟用鼠標移動事件,則不調用此方法。發生下列之一時啟用鼠標移動事件:
addMouseMotionListener 註冊了一個 MouseMotionListener 物件。
enableEvents 啟用了鼠標移動事件。
注意,如果事件參數為 null,則未指定行為並且可能導致異常。
e - 鼠標移動事件MouseEvent,
MouseMotionListener,
addMouseMotionListener(java.awt.event.MouseMotionListener),
enableEvents(long)protected void processMouseWheelEvent(MouseWheelEvent e)
MouseWheelListener 物件。
如果元件上沒有啟用鼠標滾輪事件,則不調用此方法。發生下列之一時啟用鼠標滾輪事件:
addMouseWheelListener 註冊了一個 MouseWheelListener 物件。
enableEvents 啟用了鼠標滾輪事件。
有關如何指派鼠標滾輪事件的資訊,請參閱 MouseWheelEvent 的類別描述。
注意,如果事件參數為 null,則未指定行為並且可能導致異常。
e - 鼠標滾輪事件MouseWheelEvent,
MouseWheelListener,
addMouseWheelListener(java.awt.event.MouseWheelListener),
enableEvents(long)protected void processInputMethodEvent(InputMethodEvent e)
InputMethodListener 物件。
如果元件上沒有啟用輸入方法事件,則不調用此方法。發生下列之一時啟用輸入方法事件:
addInputMethodListener 註冊了一個 InputMethodListener 物件。
enableEvents 啟用了輸入方法事件。
注意,如果事件參數為 null,則未指定行為並且可能導致異常。
e - 輸入方法事件InputMethodEvent,
InputMethodListener,
addInputMethodListener(java.awt.event.InputMethodListener),
enableEvents(long)protected void processHierarchyEvent(HierarchyEvent e)
HierarchyListener 物件。
如果元件上沒有啟用層次結構事件,則不調用此方法。發生下列之一時啟用層次結構事件:
addHierarchyListener 註冊了一個 HierarchyListener 物件。
enableEvents 啟用了層次結構事件。
注意,如果事件參數為 null,則未指定行為並且可能導致異常。
e - 層次結構事件HierarchyEvent,
HierarchyListener,
addHierarchyListener(java.awt.event.HierarchyListener),
enableEvents(long)protected void processHierarchyBoundsEvent(HierarchyEvent e)
HierarchyBoundsListener 物件。
如果元件上沒有啟用層次結構邊界事件,則不調用此方法。發生下列之一時啟用層次結構邊界事件:
addHierarchyBoundsListener 註冊了一個 HierarchyBoundsListener 物件。
enableEvents 啟用了層次結構邊界事件。
注意,如果事件參數為 null,則未指定行為並且可能導致異常。
e - 層次結構事件HierarchyEvent,
HierarchyBoundsListener,
addHierarchyBoundsListener(java.awt.event.HierarchyBoundsListener),
enableEvents(long)@Deprecated public boolean handleEvent(Event evt)
@Deprecated
public boolean mouseDown(Event evt,
int x,
int y)
@Deprecated
public boolean mouseDrag(Event evt,
int x,
int y)
@Deprecated
public boolean mouseUp(Event evt,
int x,
int y)
@Deprecated
public boolean mouseMove(Event evt,
int x,
int y)
@Deprecated
public boolean mouseEnter(Event evt,
int x,
int y)
@Deprecated
public boolean mouseExit(Event evt,
int x,
int y)
@Deprecated
public boolean keyDown(Event evt,
int key)
@Deprecated
public boolean keyUp(Event evt,
int key)
@Deprecated
public boolean action(Event evt,
Object what)
public void addNotify()
Component 連接到一個本機螢幕資源使其成為可顯示的。此方法由工具套件內部調用,不應直接由程序調用。
isDisplayable(),
removeNotify()public void removeNotify()
Component 的本機螢幕資源使其成為不可顯示的。
此方法由工具套件內部調用,不應直接由程序調用。覆寫此方法的程式碼應該在覆寫方法的首行調用 super.removeNotify。
isDisplayable(),
addNotify()
@Deprecated
public boolean gotFocus(Event evt,
Object what)
@Deprecated
public boolean lostFocus(Event evt,
Object what)
@Deprecated public boolean isFocusTraversable()
isFocusable() 取代。
Component 是否可以成為焦點所有者。
Component 是可以獲得焦點的,則返回 true;否則返回 falsesetFocusable(boolean)public boolean isFocusable()
true;否則返回 false。setFocusable(boolean)public void setFocusable(boolean focusable)
focusable - 表明此 Component 是否可以獲得焦點isFocusable()
public void setFocusTraversalKeys(int id,
Set<? extends AWTKeyStroke> keystrokes)
Component 的焦點遍歷鍵的預設值與實作有關。Sun 建議為特定本機平臺的所有實作使用相同的預設值。下面列出了 Windows 和 Unix 的建議值。在 Sun AWT 實作中使用了這些建議值。
| 標識符 | 含義 | 預設值 |
|---|---|---|
| KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS | 正常的前向鍵盤遍歷 | KEY_PRESSED 上的 TAB,KEY_PRESSED 上的 CTRL-TAB |
| KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS | 正常的反向鍵盤遍歷 | KEY_PRESSED 上的 SHIFT-TAB,KEY_PRESSED 上的 CTRL-SHIFT-TAB |
| KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS | 到上一個焦點遍歷循環 | 無 |
客戶機程式碼使用 AWTKeyStroke API 可以指定根據哪種特定的 KeyEvents(KEY_PRESSED 或 KEY_RELEASED)將會發生焦點遍歷操作。然而,無論指定了哪種 KeyEvent,都將使用與焦點遍歷鍵相關的所有 KeyEvents(包括相關聯的 KEY_TYPED 事件),並且不會指派到任意 Component。將 KEY_TYPED 事件指定為焦點遍歷操作的映射,或者將相同的事件映射到多個預設焦點遍歷操作會產生運行時錯誤。
如果為 Set 指定了 null 值,則此 Component 會繼承其父級的 Set。如果此 Component 的所有祖先都為 Set 指定了 null,則使用當前 KeyboardFocusManager 的預設 Set。
id - 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 之一、或者 keystroke 套件含 null、或者 keystroke 中的 Object 不是 AWTKeyStroke、或者任意 keystroke 表示一個 KEY_TYPED 事件,或者任意 keystroke 已經映射到此 Component 的另一個焦點遍歷操作getFocusTraversalKeys(int),
KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS,
KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS,
KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYSpublic Set<AWTKeyStroke> getFocusTraversalKeys(int id)
setFocusTraversalKeys)。
如果沒有為此 Component 顯式定義遍歷鍵 Set,則返回此 Component 的父級 Set。如果沒有為此 Component 的所有父級顯式定義 Set,則返回當前 KeyboardFocusManager 的預設 Set。
id - KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS、KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS 或 KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS 之一。
IllegalArgumentException - 如果 id 不是 KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS、KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS 或 KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS 之一setFocusTraversalKeys(int, java.util.Set extends java.awt.AWTKeyStroke>),
KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS,
KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS,
KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYSpublic boolean areFocusTraversalKeysSet(int id)
false,則此 Component 繼承了其祖先或當前 KeyboardFocusManager 的 Set。
id - KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS、KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS 或 KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS 之一
true;否則返回 false。
IllegalArgumentException - 如果 id 不是 KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS、KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS 或 KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS 之一public void setFocusTraversalKeysEnabled(boolean focusTraversalKeysEnabled)
focusTraversalKeysEnabled - 是否為此 Component 啟用焦點遍歷鍵getFocusTraversalKeysEnabled(),
setFocusTraversalKeys(int, java.util.Set extends java.awt.AWTKeyStroke>),
getFocusTraversalKeys(int)public boolean getFocusTraversalKeysEnabled()
setFocusTraversalKeysEnabled(boolean),
setFocusTraversalKeys(int, java.util.Set extends java.awt.AWTKeyStroke>),
getFocusTraversalKeys(int)public void requestFocus()
此方法不能用於為根本不是 Component 的內容設置焦點所有者,應該使用 KeyboardFocusManager.clearGlobalFocusOwner()。
因為此方法的焦點行為與平臺有關,所以強烈建議開發人員在可能時使用 requestFocusInWindow。
註:並不是所有的焦點傳輸都將導致防止調用此方法。同樣地,元件可以在沒有調用此方法或 Component 的其他任何方法的情況下接收焦點。
requestFocusInWindow(),
FocusEvent,
addFocusListener(java.awt.event.FocusListener),
isFocusable(),
isDisplayable(),
KeyboardFocusManager.clearGlobalFocusOwner()protected boolean requestFocus(boolean temporary)
Component 獲取輸入焦點,並且此 Component 的頂層祖先成為獲得焦點的 Window。此 Component 對於所要許可的請求而言必須是不可顯示的、可聚焦的和可見的並且其所有祖先(除了頂層 Window 以外)必須是可見的。此方法會盡力完成該請求;但是在某些情況下可能無法完成。在此 Component 接收 FOCUS_GAINED 事件前,開發人員必須永遠不能假定此 Component 是焦點所有者。如果由於此 Component 的頂層視窗沒有成為獲得焦點的視窗而拒絕了此請求,則記住此請求,並在後來使用者使視窗成為獲得焦點的視窗時許可此請求。
此方法返回布林值。如果返回 false,則請求注定要失敗。如果返回 true,並且在本機視窗系統允許請求前不禁止該請求或不發生特別的事件(如處理該元件的同位體),則請求成功。此外,雖然返回 true 表示請求可能成功了,但是在此元件接收 FOCUS_GAINED 事件前,開發人員必須永遠不能假定此 Component 是焦點所有者。
此方法不能用於為根本不是 component 的內容設置焦點所有者,應該使用 KeyboardFocusManager.clearGlobalFocusOwner。
因為此方法的焦點行為與平臺有關,所以強烈建議開發人員在可能時使用 requestFocusInWindow。
此方法會盡力完成該請求,確保作為此請求結果所產生的 FocusEvent 具有指定的臨時值。但是,因為在所有本機視窗系統上指定一個任意的臨時狀態是不可能實作的,所以只有輕量級 Component 可以保證此方法的行為正確。此方法並非用於一般用途,而是作為輕量級元件資源庫(如 Swing)的鉤子 (hook) 而存在的。
註:並不是所有的焦點傳輸都將導致防止調用此方法。同樣地,元件可以在沒有調用此方法或 Component 的其他任何方法的情況下接收焦點。
temporary - 如果焦點改變是臨時的(如在視窗丟失焦點時),則為 true;有關臨時焦點改變的更多資訊,請參閱 Focus Specification
false;如果可能成功,則返回 trueFocusEvent,
addFocusListener(java.awt.event.FocusListener),
isFocusable(),
isDisplayable(),
KeyboardFocusManager.clearGlobalFocusOwner()public boolean requestFocusInWindow()
此方法返回布林值。如果返回 false,則請求注定要失敗。如果返回 true,並且在本機視窗系統允許請求前不禁止該請求或不發生特別的事件(如處理該元件的同位體),則請求成功。此外,雖然返回 true 表示請求可能成功了,但是在此元件接收 FOCUS_GAINED 事件前,開發人員必須永遠不能假定此 Component 是焦點所有者。
此方法不能用於為根本不是 Component 的內容設置焦點所有者,應該使用 KeyboardFocusManager.clearGlobalFocusOwner()。
可在各種平臺之間一致地實作此方法的焦點行為,所以強烈建議開發人員在可能時使用此方法,而不是 requestFocus。依賴 requestFocus 的程式碼可能在不同平臺上表現出不同的焦點行為。
註:並不是所有的焦點傳輸都將導致防止調用此方法。同樣地,元件可以在沒有調用此方法或 Component 的其他任何方法的情況下接收焦點。
false;如果可能成功,則返回 truerequestFocus(),
FocusEvent,
addFocusListener(java.awt.event.FocusListener),
isFocusable(),
isDisplayable(),
KeyboardFocusManager.clearGlobalFocusOwner()protected boolean requestFocusInWindow(boolean temporary)
Component 的頂層祖先已經是獲得焦點的 Window,則請求此 Component 獲取輸入焦點。此 Component 對於所要許可的請求而言必須是不可顯示的、可聚焦的和可見的並且其所有祖先(除了頂層 Window 以外)必須是可見的。此方法會盡力完成該請求;但是在某些情況下可能無法完成。在此 Component 接收 FOCUS_GAINED 事件前,開發人員必須永遠不能假定此 Component 是焦點所有者。
此方法返回布林值。如果返回 false,則請求注定要失敗。如果返回 true,並且在本機視窗系統允許請求前不禁止該請求或不發生特別的事件(如處理該元件的同位體),則請求成功。此外,雖然返回 true 表示請求可能成功了,但是在此元件接收 FOCUS_GAINED 事件前,開發人員必須永遠不能假定此 Component 是焦點所有者。
此方法不能用於為根本不是 Component 的內容設置焦點所有者。應該使用 KeyboardFocusManager.clearGlobalFocusOwner。
可在各種平臺之間一致地實作此方法的焦點行為,所以強烈建議開發人員在可能時使用此方法,而不是 requestFocus。依賴 requestFocus 的程式碼可能在不同平臺上表現出不同的焦點行為。
此方法會盡力完成該請求,確保作為此請求結果所產生的 FocusEvent 具有指定的臨時值。但是,因為在所有本機視窗系統上指定一個任意的臨時狀態是不可能實作的,所以只有輕量級元件可以保證此方法的行為正確。此方法並非用於一般用途,而是作為輕量級元件資源庫(如 Swing)的鉤子 (hook) 而存在的。
註:並不是所有的焦點傳輸都將導致防止調用此方法。同樣地,元件可以在沒有調用此方法或 Component 的其他任何方法的情況下接收焦點。
temporary - 如果焦點改變是臨時的(如在視窗丟失焦點時),則為 true;有關臨時焦點改變的更多資訊,請參閱 Focus Specification
false;如果可能成功,則返回 truerequestFocus(),
FocusEvent,
addFocusListener(java.awt.event.FocusListener),
isFocusable(),
isDisplayable(),
KeyboardFocusManager.clearGlobalFocusOwner()public void transferFocus()
requestFocus()public Container getFocusCycleRootAncestor()
Container.isFocusCycleRoot()public boolean isFocusCycleRoot(Container container)
container - 要測試的 Container
true;否則返回 falseContainer.isFocusCycleRoot()@Deprecated public void nextFocus()
public void transferFocusBackward()
requestFocus()public void transferFocusUpCycle()
requestFocus(),
Container.isFocusCycleRoot(),
Container.setFocusCycleRoot(boolean)public boolean hasFocus()
Component 是焦點所有者,則返回 true。此方法已過時,並且已經由 isFocusOwner() 取代。
Component 是焦點所有者,則返回 true;否則返回 falsepublic boolean isFocusOwner()
Component 是焦點所有者,則返回 true。
Component 是焦點所有者,則返回 true;否則返回 falsepublic void add(PopupMenu popup)
popup - 要添加給元件的彈出選單。
NullPointerException - 如果 popup 為 nullremove(MenuComponent)public void remove(MenuComponent popup)
MenuContainer 中的 removepopup - 要移除的彈出選單add(PopupMenu)protected String paramString()
null。
public String toString()
Object 中的 toStringpublic void list()
System.out。
System.outpublic void list(PrintStream out)
out - 列印串流
public void list(PrintStream out,
int indent)
out - 列印串流indent - 縮排的空格數PrintStream.println(java.lang.Object)public void list(PrintWriter out)
out - 列印到的列印編寫器
public void list(PrintWriter out,
int indent)
out - 列印到的列印編寫器indent - 縮排的空格數PrintStream.println(java.lang.Object)public void addPropertyChangeListener(PropertyChangeListener listener)
Component 繼承了一個綁定屬性,則不會觸發事件來回應繼承屬性的改變。
如果 listener 為 null,則不會拋出異常並且不執行動作。
listener - 要添加的屬性更改偵聽器removePropertyChangeListener(java.beans.PropertyChangeListener),
#getPropertyChangeListener,
addPropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener)public void removePropertyChangeListener(PropertyChangeListener listener)
如果 listener 為 null,則不會拋出異常並且不執行動作。
listener - 要移除的 PropertyChangeListeneraddPropertyChangeListener(java.beans.PropertyChangeListener),
#getPropertyChangeListener,
removePropertyChangeListener(java.lang.String,java.beans.PropertyChangeListener)public PropertyChangeListener[] getPropertyChangeListeners()
PropertyChangeListener,如果當前沒有註冊的屬性更改偵聽器,則返回一個空陣列addPropertyChangeListener(java.beans.PropertyChangeListener),
removePropertyChangeListener(java.beans.PropertyChangeListener),
#getPropertyChangeListener(java.lang.String),
java.beans.PropertyChangeSupport#getPropertyChangeListener
public void addPropertyChangeListener(String propertyName,
PropertyChangeListener listener)
Component 繼承了一個綁定屬性,則不會觸發事件來回應繼承屬性的改變。
如果 propertyName 或 listener 為 null,則不會拋出異常並且不執行動作。
propertyName - 上面所列的屬性名之一listener - 要添加的 PropertyChangeListenerremovePropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener),
#getPropertyChangeListener(java.lang.String),
addPropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener)
public void removePropertyChangeListener(String propertyName,
PropertyChangeListener listener)
PropertyChangeListener。應該使用此方法移除為指定綁定屬性所註冊的 PropertyChangeListener。
如果 propertyName 或 listener 為 null,則不會拋出異常並且不執行動作。
propertyName - 有效的屬性名listener - 要移除的 PropertyChangeListeneraddPropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener),
#getPropertyChangeListener(java.lang.String),
removePropertyChangeListener(java.beans.PropertyChangeListener)public PropertyChangeListener[] getPropertyChangeListeners(String propertyName)
PropertyChangeListener;如果尚未添加這樣的偵聽器,或者 propertyName 為 null,則返回空陣列addPropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener),
removePropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener),
#getPropertyChangeListener
protected void firePropertyChange(String propertyName,
Object oldValue,
Object newValue)
propertyName - 其值已改變的屬性oldValue - 該屬性以前的值newValue - 該屬性的新值
protected void firePropertyChange(String propertyName,
boolean oldValue,
boolean newValue)
propertyName - 其值已改變的屬性oldValue - 該屬性以前的值newValue - 該屬性的新值
protected void firePropertyChange(String propertyName,
int oldValue,
int newValue)
propertyName - 其值已改變的屬性oldValue - 該屬性以前的值newValue - 該屬性的新值
public void firePropertyChange(String propertyName,
byte oldValue,
byte newValue)
propertyName - 已改變的屬性的程式名稱oldValue - 該屬性的舊值(byte 型別)newValue - 該屬性的新值(byte 型別)firePropertyChange(java.lang.String, java.lang.Object, java.lang.Object)
public void firePropertyChange(String propertyName,
char oldValue,
char newValue)
propertyName - 已改變的屬性的程式名稱oldValue - 該屬性的舊值(char 型別)newValue - 該屬性的新值(char 型別)firePropertyChange(java.lang.String, java.lang.Object, java.lang.Object)
public void firePropertyChange(String propertyName,
short oldValue,
short newValue)
propertyName - 已改變的屬性的程式名稱oldValue - 該屬性的舊值(short 型別)newValue - 該屬性的新值(short 型別)firePropertyChange(java.lang.String, java.lang.Object, java.lang.Object)
public void firePropertyChange(String propertyName,
long oldValue,
long newValue)
propertyName - 已改變的屬性的程式名稱oldValue - 該屬性的舊值(long 型別)newValue - 該屬性的新值(long 型別)firePropertyChange(java.lang.String, java.lang.Object, java.lang.Object)
public void firePropertyChange(String propertyName,
float oldValue,
float newValue)
propertyName - 已改變的屬性的程式名稱oldValue - 該屬性的舊值(float 型別)newValue - 該屬性的新值(float 型別)firePropertyChange(java.lang.String, java.lang.Object, java.lang.Object)
public void firePropertyChange(String propertyName,
double oldValue,
double newValue)
propertyName - 已改變的屬性的程式名稱oldValue - 該屬性的舊值(double 型別)newValue - 該屬性的新值(double 型別)firePropertyChange(java.lang.String, java.lang.Object, java.lang.Object)public void setComponentOrientation(ComponentOrientation o)
LayoutManager 和 Component 子類別使用此屬性來確定如何佈局並繪製元件。
在建構時,元件的方向設置為 ComponentOrientation.UNKNOWN,表示尚未顯式地指定它。UNKNOWN 方向的行為與 ComponentOrientation.LEFT_TO_RIGHT 相同。
要設置單個元件的方向,請使用此方法。要設置整個元件層次結構的方向,請使用 applyComponentOrientation。
ComponentOrientationpublic ComponentOrientation getComponentOrientation()
LayoutManager 和 Component 子類別在執行佈局或繪製前應該調用此方法來獲取元件的方向。
ComponentOrientationpublic void applyComponentOrientation(ComponentOrientation orientation)
ComponentOrientation 屬性。
orientation - 此元件及其包含的所有元件的新元件方向。
NullPointerException - 如果 orientation 為 null。setComponentOrientation(java.awt.ComponentOrientation),
getComponentOrientation()public AccessibleContext getAccessibleContext()
Component 相關的 AccessibleContext。此基礎類別所實作的方法返回 null。擴展 Component 的類別應該實作此方法,以便返回與該子類別相關的 AccessibleContext。
Component 的 AccessibleContext
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
| 上一個類別 下一個類別 | 框架 無框架 | |||||||||
| 摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 | |||||||||
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。