JavaTM 2 Platform
Standard Ed. 6

javax.swing
類別 JComponent

java.lang.Object
  繼承者 java.awt.Component
      繼承者 java.awt.Container
          繼承者 javax.swing.JComponent
所有已實作的介面:
ImageObserver, MenuContainer, Serializable
直接已知子類別:
AbstractButton, BasicInternalFrameTitlePane, Box, Box.Filler, JColorChooser, JComboBox, JFileChooser, JInternalFrame, JInternalFrame.JDesktopIcon, JLabel, JLayeredPane, JList, JMenuBar, JOptionPane, JPanel, JPopupMenu, JProgressBar, JRootPane, JScrollBar, JScrollPane, JSeparator, JSlider, JSpinner, JSplitPane, JTabbedPane, JTable, JTableHeader, JTextComponent, JToolBar, JToolTip, JTree, JViewport

public abstract class JComponent
extends Container
implements Serializable

該類別是除頂層容器外所有 Swing 元件的基礎類別。要使用繼承自 JComponent 的元件,必須將該元件置於一個根為頂層 Swing 容器的套件含層次結構(containment hierarchy)中。頂層 Swing 容器(如 JFrameJDialogJApplet)是專門為其他 Swing 元件提供繪製自身場所的元件。有關包含層次結構的解釋,請參閱 The Java Tutorial 中的 Swing Components and the Containment Hierarchy 一節。

JComponent 類別提供:

有關這些主題的更多資訊,請參閱 Swing 套件描述The Java Tutorial 中的 The JComponent Class 一節。

JComponent 及其子類別記錄了某些屬性的預設值。例如,JTable 記錄的預設行高為 16。每個具有 ComponentUIJComponent 子類別都將創建該 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 綁定觸發何種 ActionActionMap
 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)
          獲取指定 FontFontMetrics
 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 物件。
<T extends EventListener>
T[]
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()
          返回此元件的頂層祖先(包含的 WindowApplet);如果尚未將此元件添加到任意容器中,則返回 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()
          註銷首層 InputMapsActionMap 中的所有綁定。
 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)
          設置此 JComponentJPopupMenu
 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)
          設置在 mapcondition 條件下要使用的 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.awt.Container 繼承的方法
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
從類別 java.awt.Component 繼承的方法
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
從類別 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

欄位詳細資訊

ui

protected transient ComponentUI ui
此元件的外觀委託。


listenerList

protected EventListenerList listenerList
此元件的事件偵聽器列表。


WHEN_FOCUSED

public static final int WHEN_FOCUSED
用於 registerKeyboardAction 的常數,意味著在元件獲得焦點時應該調用命令。

另請參見:
常數欄位值

WHEN_ANCESTOR_OF_FOCUSED_COMPONENT

public static final int WHEN_ANCESTOR_OF_FOCUSED_COMPONENT
用於 registerKeyboardAction 的常數,意味著當接收元件是獲得焦點的元件的祖先或者其本身就是獲得焦點的元件時,應該調用命令。

另請參見:
常數欄位值

WHEN_IN_FOCUSED_WINDOW

public static final int WHEN_IN_FOCUSED_WINDOW
用於 registerKeyboardAction 的常數,意味著當接收元件處於獲得焦點的視窗內或者其本身就是獲得焦點的元件時,應該調用命令。

另請參見:
常數欄位值

UNDEFINED_CONDITION

public static final int UNDEFINED_CONDITION
某些 API 使用的常數,意味著沒有定義任何條件。

另請參見:
常數欄位值

TOOL_TIP_TEXT_KEY

public static final String TOOL_TIP_TEXT_KEY
鼠標位於元件上方時顯示的註釋,也稱為“值提示”、“相交提示 (flyover help)”或“相交標籤 (flyover label)”。

另請參見:
常數欄位值

accessibleContext

protected AccessibleContext accessibleContext
與此 JComponent 關聯的 AccessibleContext

建構子詳細資訊

JComponent

public JComponent()
預設的 JComponent 建構子。除調用 Container 建構子外,此建構子幾乎不進行初始化工作。例如,初始佈局管理器為 null。但是,它將元件的語言環境屬性設置為 JComponent.getDefaultLocale 所返回的值。

另請參見:
getDefaultLocale()
方法詳細資訊

setInheritsPopupMenu

public void setInheritsPopupMenu(boolean value)
設置如果此元件沒有分派給它的 JPopupMenu,那麼 getComponentPopupMenu 是否應該委託給其父元件。

此方法的預設值是 false,但是某些作為多個 JComponent 實作的 JComponent 子類別可能將其設置為 true。

這是一個綁定 (bound) 屬性。

參數:
value - JPopupMenu 是否是繼承的
從以下版本開始:
1.5
另請參見:
setComponentPopupMenu(javax.swing.JPopupMenu)

getInheritsPopupMenu

public boolean getInheritsPopupMenu()
如果應該從父元件繼承 JPopupMenu,則返回 true。

從以下版本開始:
1.5
另請參見:
setComponentPopupMenu(javax.swing.JPopupMenu)

setComponentPopupMenu

public void setComponentPopupMenu(JPopupMenu popup)
設置此 JComponentJPopupMenu。UI 負責註冊綁定並添加必要的偵聽器,這樣可在恰當的時間顯示 JPopupMenu。何時顯示 JPopupMenu 取決於外觀:有些在鼠標事件中顯示它,另一些則啟用鍵綁定。

如果 popup 為 null,並且 getInheritsPopupMenu 返回 true,則將 getComponentPopupMenu 委託給父級。這將允許所有子元件繼承父元件的 popupmenu。

這是一個綁定屬性。

參數:
popup - - 分派給此元件的彈出選單,可以為 null
從以下版本開始:
1.5
另請參見:
getComponentPopupMenu()

getComponentPopupMenu

public JPopupMenu getComponentPopupMenu()
返回為此元件分派的 JPopupMenu。如果尚未給此元件分派 JPopupMenu 並且 getInheritsPopupMenu 為 true,則此方法返回 getParent().getComponentPopupMenu()(假定父元件是有效的)。

返回:
分派給此元件的 JPopupMenu;如果未分派彈出選單,則為 null
從以下版本開始:
1.5
另請參見:
setComponentPopupMenu(javax.swing.JPopupMenu)

updateUI

public void updateUI()
將 UI 屬性重置為當前外觀的值。JComponent 子類別必須用以下方式覆寫此方法:
   public void updateUI() {
      setUI((SliderUI)UIManager.getUI(this);
   }
  

另請參見:
setUI(javax.swing.plaf.ComponentUI), UIManager.getLookAndFeel(), UIManager.getUI(javax.swing.JComponent)

setUI

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)

getUIClassID

public String getUIClassID()
返回用於尋找 wing.plaf.ComponentUI 類別(定義了此元件的外觀)名的 UIDefaults 鍵。大多數應用程序無需調用此方法。支持可插入外觀的 JComponent 子類別應該覆寫此方法,以返回映射到定義其外觀的 ComponentUI 子類別的 UIDefaults 鍵。

返回:
用於 ComponentUI 子類別的 UIDefaults
另請參見:
UIDefaults.getUI(javax.swing.JComponent)

getComponentGraphics

protected Graphics getComponentGraphics(Graphics g)
返回用於繪製此元件的圖形物件。如果開啟了 DebugGraphics,則根據需要創建一個新的 DebugGraphics 物件。否則只是配置指定圖形物件的前景和字體。

參數:
g - 原 Graphics 物件
返回:
為此元件配置的 Graphics 物件

paintComponent

protected void paintComponent(Graphics g)
如果 UI 委託為非 null,則調用該 UI 委託的 paint 方法。向該委託傳遞 Graphics 物件的副本,以保護其餘的 paint 程式碼免遭不可取消的更改(例如 Graphics.translate)。

如果在子類別中覆寫此方法,則不應該對傳入的 Graphics 進行永久更改。例如,不應更改剪貼區的 Rectangle 或修改轉換。如果需要進行這些操作,您會發現根據傳入的 Graphics 創建一個新 Graphics 並進行操作更加方便。另外,如果不調用父級類別的實作,則必須遵守不透明屬性,也就是說,如果此元件是不透明的,則必須以透明的顏色完全填充背景。如果不遵守不透明屬性,則很可能看到可視的人為內容。

傳入的 Graphics 物件可能安裝了恆等轉換以外的轉換。在這種情況下,如果多次應用其他轉換,則可能得到不可預料的結果。

參數:
g - 要保護的 Graphics 物件
另請參見:
paint(java.awt.Graphics), ComponentUI

paintChildren

protected void paintChildren(Graphics g)
繪製此元件的子元件。如果 shouldUseBuffer 為 true,那麼所有的元件祖先都沒有緩衝區,且元件的子元件可以使用緩衝區(如果有)。否則,有一個祖先具有當前正在使用的緩衝區,且子元件不應該使用緩衝區進行繪製。

參數:
g - 在其中進行繪製的 Graphics 上下文
另請參見:
paint(java.awt.Graphics), Container.paint(java.awt.Graphics)

paintBorder

protected void paintBorder(Graphics g)
繪製元件的邊框。

如果在子類別中覆寫此方法,則不應該對傳入的 Graphics 進行永久更改。例如,不應更改剪貼區的 Rectangle 或修改轉換。如果需要進行這些操作,您會發現根據傳入的 Graphics 創建一個新 Graphics 並進行操作更加方便。

參數:
g - 在其中進行繪製的 Graphics 上下文
另請參見:
paint(java.awt.Graphics), setBorder(javax.swing.border.Border)

update

public void update(Graphics g)
調用 paint。不清除背景,而是查看 ComponentUI.update,它由 paintComponent 調用。

覆寫:
類別 Container 中的 update
參數:
g - 在其中進行繪製的 Graphics 上下文
另請參見:
paint(java.awt.Graphics), paintComponent(java.awt.Graphics), ComponentUI

paint

public void paint(Graphics g)
由 Swing 調用,以繪製元件。應用程序不應直接調用 paint,而是應該使用 repaint 方法來安排重繪元件。

此方法實際上將繪製工作委託給三個受保護的方法:paintComponentpaintBorderpaintChildren。按列出的順序調用這些方法,以確保子元件出現在元件本身的頂部。一般來說,不應在分派給邊框的 insets 區域繪製元件及其子元件。子類別可以始終覆寫此方法。只想特殊化 UI(外觀)委託的 paint 方法的子類別只需覆寫 paintComponent

覆寫:
類別 Container 中的 paint
參數:
g - 在其中進行繪製的 Graphics 上下文
另請參見:
paintComponent(java.awt.Graphics), paintBorder(java.awt.Graphics), paintChildren(java.awt.Graphics), getComponentGraphics(java.awt.Graphics), repaint(long, int, int, int, int)

printAll

public void printAll(Graphics g)
調用此方法列印元件。此方法對元件調用 print

覆寫:
類別 Component 中的 printAll
參數:
g - 在其中進行繪製的 Graphics 上下文
另請參見:
print(java.awt.Graphics), printComponent(java.awt.Graphics), printBorder(java.awt.Graphics), printChildren(java.awt.Graphics)

print

public void print(Graphics g)
調用此方法列印指定 Graphics 的元件。此方法將導致對 printComponentprintBorderprintChildren 的調用。如果目的是定制列印外觀的方式,建議覆寫前面提及的方法之一,而不是此方法。但是,如果想在調用父級類別行為之前準備好狀態,則覆寫此方法很有用。例如,如果想在列印前更改元件的背景顏色,則可以執行以下操作:
     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 中的 print
參數:
g - 在其中進行繪製的 Graphics 上下文
另請參見:
printComponent(java.awt.Graphics), printBorder(java.awt.Graphics), printChildren(java.awt.Graphics), isPaintingForPrint()

printComponent

protected void printComponent(Graphics g)
在列印操作期間調用此方法。實作此方法以對元件調用 paintComponent。如果要在列印時添加特殊的繪製行為,可覆寫此方法。

參數:
g - 在其中進行繪製的 Graphics 上下文
從以下版本開始:
1.3
另請參見:
print(java.awt.Graphics)

printChildren

protected void printChildren(Graphics g)
列印此元件的子元件。實作此方法以對元件調用 paintChildren。如果希望以不同於繪製的方式列印子元件,則覆寫此方法。

參數:
g - 在其中進行繪製的 Graphics 上下文
從以下版本開始:
1.3
另請參見:
print(java.awt.Graphics)

printBorder

protected void printBorder(Graphics g)
列印元件的邊框。實作此方法以對元件調用 paintBorder。如果要以和繪製該邊框所不同的方式來列印邊框,則覆寫此方法。

參數:
g - 在其中進行繪製的 Graphics 上下文
從以下版本開始:
1.3
另請參見:
print(java.awt.Graphics)

isPaintingTile

public boolean isPaintingTile()
如果元件當前正在繪製 tile,則返回 true。如果此方法返回 true,則會為另一個 tile 再次調用 paint。如果沒有繪製 tile,或者已繪製完最後一個 tile,則此方法返回 false。使用此方法可保持 tile 間可能需要的某個狀態。

返回:
如果元件當前正在繪製 tile,則返回 true;否則返回 false

isPaintingForPrint

public final boolean isPaintingForPrint()
如果此元件上的當前繪製操作是 print 操作的一部分,則返回 true。當想要定制所列印的內容以及在螢幕上顯示的內容時,此方法很有用。

通過偵聽此元件上名為 "paintingForPrint" 的屬性更改事件,可以檢測此屬性值中的更改。

註:此方法也提供其他高層級別 Swing 列印 API 所提供的功能。但是,它嚴格處理繪製操作,不要因為高層級別列印進程上提供的資訊相混淆。例如,JTable.print() 操作不一定會連續呈現完整的元件,此方法的返回值在該操作中可多次更改。元件甚至有可能在列印進程正在進行時便繪製到螢幕。在這種情況下,當且僅當該表作為列印進程的一部分進行繪製時,此方法的返回值為 true

返回:
如果此元件上的當前繪製操作是列印操作的一部分,則返回 true
從以下版本開始:
1.6
另請參見:
print(java.awt.Graphics)

isManagingFocus

@Deprecated
public boolean isManagingFocus()
已過時。 從 1.4 版本開始,由 Component.setFocusTraversalKeys(int, Set)Container.setFocusCycleRoot(boolean) 取代。

在版本 1.4 中,重新設計了焦點子系統。有關更多資訊,請參閱 The Java Tutorial 中的 How to Use the Focus Subsystem 一節。

將此 JComponent 的焦點遍歷鍵更改為 CTRL+TAB 和 CTRL+SHIFT+TAB。在計算焦點遍歷循環時,SortingFocusTraversalPolicy 仍然沒有將此 JComponent 的子代考慮在內。

另請參見:
Component.setFocusTraversalKeys(int, java.util.Set), SortingFocusTraversalPolicy

setNextFocusableComponent

@Deprecated
public void setNextFocusableComponent(Component aComponent)
已過時。 從 1.4 版本開始,由 FocusTraversalPolicy 取代

在版本 1.4 中,重新設計了焦點子系統。有關更多資訊,請參閱 The Java Tutorial 中的 How to Use the Focus Subsystem 一節。

為此 JComponent 的焦點遍歷循環覆寫預設的 FocusTraversalPolicy:無條件地將指定的 Component 設置為循環中的下一個 Component,並將此 JComponent 設置為循環中指定 Component 的前一個 Component

參數:
aComponent - 焦點遍歷循環中應該跟在此 JComponent 後的 Component
另請參見:
getNextFocusableComponent(), FocusTraversalPolicy

getNextFocusableComponent

@Deprecated
public Component getNextFocusableComponent()
已過時。 從 1.4 版本開始,由 FocusTraversalPolicy 取代。

在版本 1.4 中,重新設計了焦點子系統。有關更多資訊,請參閱 The Java Tutorial 中的 How to Use the Focus Subsystem 一節。

返回之前對此 JComponent 調用 setNextFocusableComponent(Component) 所設置的 Component

返回:
焦點遍歷循環中應該跟在此 JComponent 後的 Component;如果尚未顯式地指定,則為 null
另請參見:
setNextFocusableComponent(java.awt.Component)

setRequestFocusEnabled

public void setRequestFocusEnabled(boolean requestFocusEnabled)
提供一個關於此 JComponent 是否應該獲得焦點的提示。這只是一個提示,由使用者決定請求焦點是否遵守此屬性。鼠標操作通常遵守此屬性,而鍵盤操作則並非如此。例如,在鼠標操作期間,外觀可以在請求焦點前驗證此屬性是否為 true。如果不想在 JComponent 上按下鼠標以獲得焦點,而是希望通過鍵盤遍歷 JComponent,則要多次使用此方法。如果不希望此 JComponent 可聚焦,請使用 setFocusable 方法。

有關更多資訊,請參閱 The Java Tutorial 中的 How to Use the Focus Subsystem 一節。

參數:
requestFocusEnabled - 指示是否希望此 JComponent 可聚焦
另請參見:
Focus Specification, Component.setFocusable(boolean)

isRequestFocusEnabled

public boolean isRequestFocusEnabled()
如果此 JComponent 應該獲得焦點,則返回 true;否則返回 false

有關更多資訊,請參閱 The Java Tutorial 中的 How to Use the Focus Subsystem 一節。

返回:
如果此 component 應該獲得焦點,則返回 true;否則返回 false
另請參見:
setRequestFocusEnabled(boolean), Focus Specification, Component.isFocusable()

requestFocus

public void requestFocus()
請求此 Component 獲取輸入焦點。有關此方法的完整描述,請參閱 Component.requestFocus()

注意,不推薦使用此方法,因為其行為與平臺有關。建議使用 requestFocusInWindow()。若要瞭解有關焦點的更多資訊,請參閱 The Java Tutorial 中的 How to Use the Focus Subsystem 一節。

覆寫:
類別 Component 中的 requestFocus
從以下版本開始:
1.4
另請參見:
Component.requestFocusInWindow(), Component.requestFocusInWindow(boolean)

requestFocus

public boolean requestFocus(boolean temporary)
請求此 Component 獲取輸入焦點。有關此方法的完整描述,請參閱 Component.requestFocus(boolean)

注意,不推薦使用此方法,因為其行為與平臺有關。建議使用 requestFocusInWindow(boolean)。若要瞭解有關焦點的更多資訊,請參閱 The Java Tutorial 中的 How to Use the Focus Subsystem 一節。

覆寫:
類別 Component 中的 requestFocus
參數:
temporary - boolean 值,指示焦點更改是否為臨時的
返回:
如果焦點更改請求一定會失敗,則返回 false;如果有可能成功,則返回 true
從以下版本開始:
1.4
另請參見:
Component.requestFocusInWindow(), Component.requestFocusInWindow(boolean)

requestFocusInWindow

public boolean requestFocusInWindow()
請求此 Component 獲取輸入焦點。有關此方法的完整描述,請參閱 Component.requestFocusInWindow()

若要瞭解有關焦點的更多資訊,請參閱 The Java Tutorial 中的 How to Use the Focus Subsystem 一節。

覆寫:
類別 Component 中的 requestFocusInWindow
返回:
如果焦點更改請求一定會失敗,則返回 false;如果有可能成功,則返回 true
從以下版本開始:
1.4
另請參見:
Component.requestFocusInWindow(), Component.requestFocusInWindow(boolean)

requestFocusInWindow

protected boolean requestFocusInWindow(boolean temporary)
請求此 Component 獲取輸入焦點。有關此方法的完整描述,請參閱 Component.requestFocusInWindow(boolean)

若要瞭解有關焦點的更多資訊,請參閱 The Java Tutorial 中的 How to Use the Focus Subsystem 一節。

覆寫:
類別 Component 中的 requestFocusInWindow
參數:
temporary - boolean 值,指示焦點更改是否為臨時的
返回:
如果焦點更改請求一定會失敗,則返回 false;如果有可能成功,則返回 true
從以下版本開始:
1.4
另請參見:
Component.requestFocusInWindow(), Component.requestFocusInWindow(boolean)

grabFocus

public void grabFocus()
請求此 Component 獲取輸入焦點,並請求此 Component 的頂層祖先成為獲得焦點的 Window。此元件對於要准許的請求而言必須是可顯示的、可見的、可聚焦的。

此方法用於焦點實作。客戶端程式碼不應使用此方法;相反,它應該使用 requestFocusInWindow()

另請參見:
requestFocusInWindow()

setVerifyInputWhenFocusTarget

public void setVerifyInputWhenFocusTarget(boolean verifyInputWhenFocusTarget)
設置該值指示是否在此元件請求焦點前,為當前的焦點所有者調用輸入校驗器。預設值為 true。對於像 Cancel 按鈕或滾動條等元件可將該值設置為 false,這些元件應該是啟動的,即使當前焦點所有者的輸入沒有“通過”該元件的輸入校驗器的檢驗。

參數:
verifyInputWhenFocusTarget - verifyInputWhenFocusTarget 屬性的值
從以下版本開始:
1.3
另請參見:
InputVerifier, setInputVerifier(javax.swing.InputVerifier), getInputVerifier(), getVerifyInputWhenFocusTarget()

getVerifyInputWhenFocusTarget

public boolean getVerifyInputWhenFocusTarget()
返回值指示是否在此元件請求焦點前,為當前的焦點所有者調用輸入校驗器。

返回:
verifyInputWhenFocusTarget 屬性的值
從以下版本開始:
1.3
另請參見:
InputVerifier, setInputVerifier(javax.swing.InputVerifier), getInputVerifier(), setVerifyInputWhenFocusTarget(boolean)

getFontMetrics

public FontMetrics getFontMetrics(Font font)
獲取指定 FontFontMetrics

覆寫:
類別 Component 中的 getFontMetrics
參數:
font - 要獲取其字體規格的字體
返回:
font 的字體規格
拋出:
NullPointerException - 如果 font 為 null
從以下版本開始:
1.5
另請參見:
Component.getFont(), Component.getPeer(), ComponentPeer.getFontMetrics(Font), Toolkit.getFontMetrics(Font)

setPreferredSize

public void setPreferredSize(Dimension preferredSize)
設置此元件的首選大小。如果 preferredSizenull,則要求 UI 提供首選大小。

覆寫:
類別 Component 中的 setPreferredSize
參數:
preferredSize - 新的首選大小,或者為 null
另請參見:
Component.getPreferredSize(), Component.isPreferredSizeSet()

getPreferredSize

public Dimension getPreferredSize()
如果 preferredSize 已設置為一個非 null 值,則返回該值。如果 UI 委託的 getPreferredSize 方法返回一個非 null 值,則返回該值;否則服從元件的佈局管理器。

覆寫:
類別 Container 中的 getPreferredSize
返回:
preferredSize 屬性的值
另請參見:
setPreferredSize(java.awt.Dimension), ComponentUI

setMaximumSize

public void setMaximumSize(Dimension maximumSize)
將此元件的最大大小設置為一個常數值。對 getMaximumSize 的後續調用將始終返回此值;而不要求元件的 UI 計算它。將最大大小設置為 null 可恢復預設行為。

覆寫:
類別 Component 中的 setMaximumSize
參數:
maximumSize - 一個套件含所需最大允許大小的 Dimension
另請參見:
getMaximumSize()

getMaximumSize

public Dimension getMaximumSize()
如果已將最大大小設置為一個非 null 值,則返回該值。如果 UI 委託的 getMaximumSize 方法返回一個非 null 值,則返回該值;否則服從元件的佈局管理器。

覆寫:
類別 Container 中的 getMaximumSize
返回:
maximumSize 屬性的值
另請參見:
setMaximumSize(java.awt.Dimension), ComponentUI

setMinimumSize

public void setMinimumSize(Dimension minimumSize)
將此元件的最小大小設置為一個常數值。對 getMinimumSize 的後續調用將始終返回此值;不會要求元件的 UI 計算它。將最小大小設置為 null 可恢復預設行為。

覆寫:
類別 Component 中的 setMinimumSize
參數:
minimumSize - 此元件新的最小大小
另請參見:
getMinimumSize()

getMinimumSize

public Dimension getMinimumSize()
如果已將最小大小設置為一個非 null 值,則返回該值。如果 UI 委託的 getMinimumSize 方法返回一個非 null 值,則返回該值;否則服從元件的佈局管理器。

覆寫:
類別 Container 中的 getMinimumSize
返回:
minimumSize 屬性的值
另請參見:
setMinimumSize(java.awt.Dimension), ComponentUI

contains

public boolean contains(int x,
                        int y)
為了進行鼠標處理,讓 UI 委託來定義此元件的精確形狀。

覆寫:
類別 Component 中的 contains
參數:
x - 該點的 x 坐標
y - 該點的 y 坐標
返回:
如果此元件邏輯上包含 x,y,則返回 true
另請參見:
Component.contains(int, int), ComponentUI

setBorder

public void setBorder(Border border)
設置此元件的邊框。Border 物件負責定義元件的 insets(直接對元件覆寫所有 insets 設置),並且可選地呈現這些 insets 範圍內的邊框裝飾。要為 swing 元件創建有裝飾的和無裝飾的區域(例如邊距和填充),應該使用邊框(而不是 insets)。在單個元件中可使用復合邊框來巢狀多個邊框。

雖然從技術上講可以在繼承自 JComponent 的所有物件上設置邊框,但是很多標準 Swing 元件的外觀實作無法正常地使用使用者設置的邊框。通常,如果希望在標準的 Swing 元件而不是 JPanelJLabel 上設置邊框時,建議將元件放入 JPanel 中,並在 JPanel 上設置邊框。

這是一個綁定屬性。

參數:
border - 要為此元件呈現的邊框
另請參見:
Border, CompoundBorder

getBorder

public Border getBorder()
返回此元件的邊框;如果當前未設置邊框,則返回 null

返回:
此元件的邊框物件
另請參見:
setBorder(javax.swing.border.Border)

getInsets

public Insets getInsets()
如果已在此元件上設置了邊框,則返回該邊框的 insets;否則調用 super.getInsets

覆寫:
類別 Container 中的 getInsets
返回:
insets 屬性的值
另請參見:
setBorder(javax.swing.border.Border)

getInsets

public Insets getInsets(Insets insets)
返回包含此元件 inset 值的 Insets 物件。如有可能,將重用傳入的 Insets 物件。但是不能假定調用這些方法將返回相同的物件。覆寫此物件內所有現有值。如果 insets 為 null,則此方法將分派一個新的 insets。

參數:
insets - Insets 物件,它可以被重用
返回:
Insets 物件
另請參見:
getInsets()

getAlignmentY

public float getAlignmentY()
覆寫 Container.getAlignmentY 以返回水平對齊方式。

覆寫:
類別 Container 中的 getAlignmentY
返回:
alignmentY 屬性的值
另請參見:
setAlignmentY(float), Component.getAlignmentY()

setAlignmentY

public void setAlignmentY(float alignmentY)
設置水平對齊方式。

參數:
alignmentY - 新的水平對齊方式
另請參見:
getAlignmentY()

getAlignmentX

public float getAlignmentX()
覆寫 Container.getAlignmentX 以返回垂直對齊方式。

覆寫:
類別 Container 中的 getAlignmentX
返回:
alignmentX 屬性的值
另請參見:
setAlignmentX(float), Component.getAlignmentX()

setAlignmentX

public void setAlignmentX(float alignmentX)
設置垂直對齊方式。

參數:
alignmentX - 新的垂直對齊方式
另請參見:
getAlignmentX()

setInputVerifier

public void setInputVerifier(InputVerifier inputVerifier)
設置此元件的輸入校驗器。

參數:
inputVerifier - 新的輸入校驗器
從以下版本開始:
1.3
另請參見:
InputVerifier

getInputVerifier

public InputVerifier getInputVerifier()
返回此元件的輸入校驗器。

返回:
inputVerifier 屬性
從以下版本開始:
1.3
另請參見:
InputVerifier

getGraphics

public Graphics getGraphics()
返回此元件的圖形上下文,該上下文允許您繪製元件。使用此方法可獲取一個 Graphics 物件,然後在該物件上調用操作,以便繪製元件。

覆寫:
類別 Component 中的 getGraphics
返回:
此元件的圖形上下文
另請參見:
Component.paint(java.awt.Graphics)

setDebugGraphicsOptions

public void setDebugGraphicsOptions(int debugOptions)
啟用或禁用與元件或其某個子元件內執行的每個圖形操作有關的診斷資訊。

參數:
debugOptions - 確定元件應該如何顯示資訊;為下列選項之一:
  • DebugGraphics.LOG_OPTION - 列印文本訊息。
  • DebugGraphics.FLASH_OPTION - 繪製的內容閃爍幾次。
  • DebugGraphics.BUFFERED_OPTION - 創建一個 ExternalWindow,顯示在 View 的脫屏緩衝區上執行的操作。
  • DebugGraphics.NONE_OPTION 禁用除錯。
  • 值 0 不會更改該除錯選項。
當前值是 debugOptions 按位或運算的結果

getDebugGraphicsOptions

public int getDebugGraphicsOptions()
返回圖形除錯的狀態。

返回:
0 標誌或下列選項按位或運算的結果:
  • DebugGraphics.LOG_OPTION - 列印文本訊息。
  • DebugGraphics.FLASH_OPTION - 繪製的內容閃爍幾次。
  • DebugGraphics.BUFFERED_OPTION - 創建一個 ExternalWindow,顯示在 View 的脫屏緩衝區上執行的操作。
  • DebugGraphics.NONE_OPTION 禁用除錯。
  • 值 0 不會更改該除錯選項。
另請參見:
setDebugGraphicsOptions(int)

registerKeyboardAction

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 經過了驗證,則調用 anActionKeyStroke 物件定義了鍵盤鍵和一個或多個修改鍵(alt、shift、ctrl、meta)的特定組合。

aCommand 將在傳遞的事件(如果指定)中進行設置。

aCondition 可以為:

WHEN_FOCUSED
僅在發生鍵擊、同時元件具有焦點時才調用該動作。
WHEN_IN_FOCUSED_WINDOW
當發生鍵擊、同時元件具有焦點時,或者元件處於具有焦點的視窗中時調用該動作。注意,該元件無需是該視窗的直接子級,它可以處於視窗包含層次結構中的任意位置。換句話說,只要視窗中的任意 元件具有焦點,就調用向此元件註冊的動作。
WHEN_ANCESTOR_OF_FOCUSED_COMPONENT
當發生鍵擊、同時元件具有焦點時,或者該元件是具有焦點的元件的祖先時調用該動作。

這種鍵擊和條件的組合允許您為指定的鍵擊+修改鍵組合定義高層級別(語義)的動作事件(使用 KeyStroke 類別),並導向具有焦點的元件的父元件或子元件,或者該元件本身。換句話說,在任意的元件層次結構中,可將任意的鍵組合導向層次結構中的適當元件,並調用具體的方法(通常通過適配器物件的方式)。

如果已經使用相同的 charCode 和修改鍵為接收容器註冊了某個動作,則 anAction 將取代該動作。

參數:
anAction - 要註冊的 Action
aCommand - 要在傳遞的事件中設置的命令
aKeyStroke - 與動作綁定的 KeyStroke
aCondition - 要符合的條件,見上文
另請參見:
KeyStroke

registerKeyboardAction

public void registerKeyboardAction(ActionListener anAction,
                                   KeyStroke aKeyStroke,
                                   int aCondition)
此方法現在已過時,對於類似的操作,請結合使用 getActionMap()getInputMap()


unregisterKeyboardAction

public void unregisterKeyboardAction(KeyStroke aKeyStroke)
此方法現在已過時。要註銷現有綁定,可以從 ActionMap/InputMap 中移除該綁定,或者在 InputMap 中放置一個虛擬(dummy)綁定。從 InputMap 中移除綁定允許父 InputMap 中的綁定處於啟動狀態,而在 InputMap 中放置一個 dummy 綁定則可以有效地禁止綁定發生。

註銷一個鍵盤動作。此動作將從 ActionMap(如果存在)和 InputMap 中移除綁定。


getRegisteredKeyStrokes

public KeyStroke[] getRegisteredKeyStrokes()
返回啟動已註冊動作的 KeyStrokes

返回:
KeyStroke 物件陣列
另請參見:
registerKeyboardAction(java.awt.event.ActionListener, java.lang.String, javax.swing.KeyStroke, int)

getConditionForKeyStroke

public int getConditionForKeyStroke(KeyStroke aKeyStroke)
返回確定是否發生已註冊動作以回應指定鍵擊事件的條件。

對於 Java 2 平臺 v1.3,一個 KeyStroke 可與多個條件關聯。例如,'a' 可以和兩個條件 WHEN_FOCUSEDWHEN_IN_FOCUSED_WINDOW 綁定。

返回:
動作-鍵擊條件

getActionForKeyStroke

public ActionListener getActionForKeyStroke(KeyStroke aKeyStroke)
返回執行針對給定鍵擊而註冊的操作的物件。

返回:
發生鍵擊時所調用的 ActionListener 物件

resetKeyboardActions

public void resetKeyboardActions()
註銷首層 InputMapsActionMap 中的所有綁定。此操作可以移除所有的本地綁定,並允許保留父 InputMap/ActionMaps 中定義的綁定(通常在第二層定義 UI)。


setInputMap

public final void setInputMap(int condition,
                              InputMap map)
設置在 mapcondition 條件下要使用的 InputMapnull 意味著不想使用任何綁定(包括來自 UI 的綁定)。這不會重新安裝 UI InputMap(如果有)。condition 為以下值之一: 如果 conditionWHEN_IN_FOCUSED_WINDOWmap 不是 ComponentInputMap,則拋出 IllegalArgumentException。類似地,如果 condition 不是上述值之一,則拋出 IllegalArgumentException

參數:
condition - 上述值之一
map - 用於給定條件的 InputMap
拋出:
IllegalArgumentException - 如果 conditionWHEN_IN_FOCUSED_WINDOWmap 不是 ComponentInputMap 的實例;或者 condition 不是上面指定的合法值之一
從以下版本開始:
1.3

getInputMap

public final InputMap getInputMap(int condition)
返回 condition 中所使用的 InputMap

參數:
condition - WHEN_IN_FOCUSED_WINDOW、WHEN_FOCUSED、WHEN_ANCESTOR_OF_FOCUSED_COMPONENT 之一
返回:
指定 conditionInputMap
從以下版本開始:
1.3

getInputMap

public final InputMap getInputMap()
返回元件具有焦點時所使用的 InputMap。這是 getInputMap(WHEN_FOCUSED) 的一個便捷方法。

返回:
元件具有焦點時所使用的 InputMap
從以下版本開始:
1.3

setActionMap

public final void setActionMap(ActionMap am)
ActionMap 設置為 am。此方法不會將 am 的父級設置成 UI 的 ActionMap(如果有),由調用者決定是否這樣做。

參數:
am - 新的 ActionMap
從以下版本開始:
1.3

getActionMap

public final ActionMap getActionMap()
返回用於確定為特定 KeyStroke 綁定觸發何種 ActionActionMap。除非另行設置,否則返回的 ActionMap 將 UI 的 ActionMap 設置為其父級。

返回:
包含鍵/動作綁定的 ActionMap
從以下版本開始:
1.3

getBaseline

public int getBaseline(int width,
                       int height)
返回基線。基線是從元件頂部開始測量的。此方法主要用於 LayoutManager,以便沿元件的基線對齊元件。返回值小於 0 表示此元件沒有合理的基線,並且 LayoutManager 不應該根據該元件的基線來對齊此元件。

此方法調用相同名稱的 ComponentUI 方法。如果此元件不具有 ComponentUI,則返回 -1。如果返回大於等於 0 的值,則該元件有一個對於任何大於等於最小大小的大小均有效的基線,並且可以使用 getBaselineResizeBehavior 確定基線如何隨大小發生更改。

覆寫:
類別 Component 中的 getBaseline
參數:
width - 適合基線的寬度
height - 適合基線的高度
返回:
基線,如果基線 < 0,則表示沒有合理的基線
拋出:
IllegalArgumentException - 如果 width 或 height < 0
從以下版本開始:
1.6
另請參見:
getBaselineResizeBehavior(), FontMetrics

getBaselineResizeBehavior

public Component.BaselineResizeBehavior getBaselineResizeBehavior()
返回一個列舉,指示元件的基線如何隨大小更改而發生更改。此方法主要用於佈局管理器和 GUI 產生器。

此方法調用相同名稱的 ComponentUI 方法。如果此元件不具有 ComponentUI,則返回 BaselineResizeBehavior.OTHER。子類別不應該返回 null;如果無法計算基線,則返回 BaselineResizeBehavior.OTHER。調用者應該首先使用 getBaseline 詢問基線,如果返回值大於等於 0,則使用此方法。此方法返回一個 BaselineResizeBehavior.OTHER 以外的值是可以接受的,即使 getBaseline 返回一個小於 0 的值。

覆寫:
類別 Component 中的 getBaselineResizeBehavior
返回:
一個指示基線如何隨元件大小的更改發生變化的列舉
從以下版本開始:
1.6
另請參見:
getBaseline(int, int)

requestDefaultFocus

@Deprecated
public boolean requestDefaultFocus()
已過時。 從 1.4 版本開始,由 FocusTraversalPolicy.getDefaultComponent(Container).requestFocus() 取代

在版本 1.4 中,重新設計了焦點子系統。有關更多資訊,請參閱 The Java Tutorial 中的 How to Use the Focus Subsystem 一節。

請求此 JComponent FocusTraversalPolicy 的預設 Component 上的焦點。如果此 JComponent 是焦點循環根,則使用其 FocusTraversalPolicy。否則,使用此 JComponent 的焦點循環根祖先的 FocusTraversalPolicy

另請參見:
FocusTraversalPolicy.getDefaultComponent(java.awt.Container)

setVisible

public void setVisible(boolean aFlag)
使該元件可見或不可見。覆寫 Component.setVisible

覆寫:
類別 Component 中的 setVisible
參數:
aFlag - true 使該元件可見;false 使其不可見
另請參見:
Component.isVisible()

setEnabled

public void setEnabled(boolean enabled)
設置是否啟用此元件。已啟用的元件可以回應使用者輸入,而未啟用的元件則無法回應使用者輸入。可以在禁用某些元件時更改其可視化表現形式,以向使用者提供反饋,說明其無法接受輸入。

註:禁用某個元件不會禁用其子元件。

註:禁用輕量元件不會阻止其接收 MouseEvent。

覆寫:
類別 Component 中的 setEnabled
參數:
enabled - 如果應該啟用此元件,則為 true;否則為 false
另請參見:
Component.isEnabled(), Component.isLightweight()

setForeground

public void setForeground(Color fg)
設置此元件的前景色。由外觀來決定是否遵守此屬性,某些外觀可以選擇忽略它。

覆寫:
類別 Component 中的 setForeground
參數:
fg - 所需的前景 Color
另請參見:
Component.getForeground()

setBackground

public void setBackground(Color bg)
設置此元件的背景色。背景色僅在元件是不透明時才使用,並且只能由 JComponentComponentUI 實作的子類別使用。JComponent 的直接子類別必須覆寫 paintComponent 以遵守此屬性。

由外觀決定是否遵守此屬性,某些外觀可以選擇忽略它。

覆寫:
類別 Component 中的 setBackground
參數:
bg - 所需的背景 Color
另請參見:
Component.getBackground(), setOpaque(boolean)

setFont

public void setFont(Font font)
設置此元件的字體。

覆寫:
類別 Container 中的 setFont
參數:
font - 此元件所需的 Font
另請參見:
Component.getFont()

getDefaultLocale

public static Locale getDefaultLocale()
返回在創建時,用於初始化每個 JComponent 的語言環境屬性的預設語言環境。 預設的語言環境具有 "AppContext" 範圍,所以 applet(以及可能在單個 VM 中運行的多個輕量級應用程序)可以有它們自己的設置。applet 可以安全地更改其預設的語言環境,因為它不會影響其他 applet(或瀏覽器)。

返回:
預設的 Locale
從以下版本開始:
1.4
另請參見:
setDefaultLocale(java.util.Locale), Component.getLocale(), Component.setLocale(java.util.Locale)

setDefaultLocale

public static void setDefaultLocale(Locale l)
設置在創建時,用於初始化每個 JComponent 的語言環境屬性的預設語言環境。初始值是 VM 的預設語言環境。 預設的語言環境具有 "AppContext" 範圍,所以 applet(以及可能在單個 VM 中運行的多個輕量級應用程序)可以有它們自己的設置。applet 可以安全地更改其預設的語言環境,因為它不會影響其他 applet(或瀏覽器)。

參數:
l - 所需的預設 Locale,用於新的元件。
從以下版本開始:
1.4
另請參見:
getDefaultLocale(), Component.getLocale(), Component.setLocale(java.util.Locale)

processComponentKeyEvent

protected void processComponentKeyEvent(KeyEvent e)
處理該元件本身可識別的所有鍵事件。在焦點管理器和所有相關偵聽器可以偵聽事件後調用此方法。僅在事件尚未被使用時才調用此方法。在鍵盤 UI 邏輯之前調用此方法。

實作此方法不執行任何操作。如果子類別本身處理某些鍵事件,則這些子類別通常覆寫此方法。如果事件已經處理,則使用該事件。


processKeyEvent

protected void processKeyEvent(KeyEvent e)
覆寫 processKeyEvent 以處理事件。

覆寫:
類別 Component 中的 processKeyEvent
參數:
e - 按鍵事件
另請參見:
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()

processKeyBinding

protected boolean processKeyBinding(KeyStroke ks,
                                    KeyEvent e,
                                    int condition,
                                    boolean pressed)
由於發生 KeyEvent e 而調用此方法處理 ks 的鍵綁定。此方法將獲取適當的 InputMap、獲取綁定、從 ActionMap 獲取動作,然後(如果找到該動作並且已啟用該元件)調用 notifyAction 來通知該動作。

參數:
ks - 被查詢的 KeyStroke
e - KeyEvent
condition - 為下列值之一:
  • JComponent.WHEN_FOCUSED
  • JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT
  • JComponent.WHEN_IN_FOCUSED_WINDOW
pressed - 如果鍵被按下,則為 true
返回:
如果有該動作的綁定並且已啟用該動作,則返回 true
從以下版本開始:
1.3

setToolTipText

public void setToolTipText(String text)
註冊要在工具提示中顯示的文本。鼠標處於該元件上時顯示該文本。

有關更多資訊,請參閱 The Java Tutorial 中的 How to Use Tool Tips

參數:
text - 要顯示的字元串;如果 text 為 null,則關閉此元件的工具提示
另請參見:
TOOL_TIP_TEXT_KEY

getToolTipText

public String getToolTipText()
返回通過 setToolTipText 所設置的工具提示字元串。

返回:
工具提示文本
另請參見:
TOOL_TIP_TEXT_KEY

getToolTipText

public String getToolTipText(MouseEvent event)
返回用作 event 工具提示的字元串。預設情況下,此方法返回使用 setToolTipText 設置的任意字元串。如果元件提供了進一步擴展的 API,以支持不同位置的不同工具提示,則應覆寫此方法。


getToolTipLocation

public Point getToolTipLocation(MouseEvent event)
返回工具提示在此元件坐標系統中的位置。如果返回 null,則 Swing 將選擇某個位置。預設實作返回 null

參數:
event - 導致 ToolTipManager 顯示工具提示的 MouseEvent
返回:
始終返回 null

getPopupLocation

public Point getPopupLocation(MouseEvent event)
返回在此元件坐標系統中顯示彈出式選單的首選位置。由外觀來決定是否遵守此屬性,某些外觀可以選擇忽略它。如果返回 null,則外觀將選擇一個合適的位置。

參數:
event - 觸發顯示彈出式選單的 MouseEvent;如果不是因鼠標事件而顯示彈出式選單,則為 null
返回:
顯示 JPopupMenu 的位置,或者返回 null
從以下版本開始:
1.5

createToolTip

public JToolTip createToolTip()
返回用於顯示工具提示的 JToolTip 實例。元件通常不覆寫此方法,但是可將其用於以不同的方式顯示不同的工具提示。

返回:
用於顯示此工具提示的 JToolTip

scrollRectToVisible

public void scrollRectToVisible(Rectangle aRect)
scrollRectToVisible() 訊息轉發到 JComponent 的父元件。可執行該請求的元件(如 JViewport)會覆寫此方法並執行滾動。

參數:
aRect - 可見的 Rectangle
另請參見:
JViewport

setAutoscrolls

public void setAutoscrolls(boolean autoscrolls)
設置 autoscrolls 屬性。如果為 true,則在將鼠標拖動到元件的邊界外並且鼠標移動已暫停(但是繼續按下鼠標按鍵)時,人為地產生鼠標拖動事件。該人為事件使得拖動動作似乎在跨越元件的邊界時所建立的方向上得以恢復。支持自動滾動的元件必須處理 mouseDragged 事件,通過調用帶有一個套件含鼠標事件位置的矩形的 scrollRectToVisible 來完成。所有支持項選擇以及通常在 JScrollPaneJTableJListJTreeJTextAreaJEditorPane)中顯示的 Swing 元件都將以這種方式處理鼠標拖動事件。要在任何其他元件中啟用自動滾動,可添加一個調用 scrollRectToVisible 的鼠標移動偵聽器。例如,給定 JPanelmyPanel
 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,則在將鼠標拖動到元件的邊界外並且繼續按下鼠標按鍵時,產生人為鼠標拖動事件;否則為 false
另請參見:
getAutoscrolls(), JViewport, JScrollPane

getAutoscrolls

public boolean getAutoscrolls()
獲取 autoscrolls 屬性。

返回:
autoscrolls 屬性的值
另請參見:
JViewport, setAutoscrolls(boolean)

setTransferHandler

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 - 在元件之間傳輸資料的機制
從以下版本開始:
1.4
另請參見:
TransferHandler, getTransferHandler()

getTransferHandler

public TransferHandler getTransferHandler()
獲取 transferHandler 屬性。

返回:
transferHandler 屬性的值
從以下版本開始:
1.4
另請參見:
TransferHandler, setTransferHandler(javax.swing.TransferHandler)

processMouseEvent

protected void processMouseEvent(MouseEvent e)
處理此元件上發生的鼠標事件,通過將其指派到任意已註冊的 MouseListener 物件來完成,有關此方法的完整描述,請參閱 Component.processMouseEvent(MouseEvent)

覆寫:
類別 Component 中的 processMouseEvent
參數:
e - 鼠標事件
從以下版本開始:
1.5
另請參見:
Component.processMouseEvent(java.awt.event.MouseEvent)

processMouseMotionEvent

protected void processMouseMotionEvent(MouseEvent e)
處理鼠標移動事件,如 MouseEvent.MOUSE_DRAGGED。

覆寫:
類別 Component 中的 processMouseMotionEvent
參數:
e - the MouseEvent
另請參見:
MouseEvent

enable

@Deprecated
public void enable()
已過時。 從 JDK version 1.1 開始,由 java.awt.Component.setEnabled(boolean) 取代。

覆寫:
類別 Component 中的 enable

disable

@Deprecated
public void disable()
已過時。 從 JDK version 1.1 開始,由 java.awt.Component.setEnabled(boolean) 取代。

覆寫:
類別 Component 中的 disable

getAccessibleContext

public AccessibleContext getAccessibleContext()
返回與此 JComponent 關聯的 AccessibleContext。此基礎類別所實作的方法返回 null。擴展 JComponent 的類別應該實作此方法,以返回與子類別關聯的 AccessibleContext

覆寫:
類別 Component 中的 getAccessibleContext
返回:
JComponentAccessibleContext

getClientProperty

public final Object getClientProperty(Object key)
返回具有指定鍵的屬性的值。只有通過 putClientProperty 添加的屬性才返回非 null 值。

參數:
key - 查詢的內容
返回:
此屬性的值,或者返回 null
另請參見:
putClientProperty(java.lang.Object, java.lang.Object)

putClientProperty

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)

setFocusTraversalKeys

public void setFocusTraversalKeys(int id,
                                  Set<? extends AWTKeyStroke> keystrokes)
設置針對此 Component 的給定遍歷操作的焦點遍歷鍵。有關此方法的完整描述,請參閱 Component.setFocusTraversalKeys(int, java.util.Set)

覆寫:
類別 Container 中的 setFocusTraversalKeys
參數:
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 之一、keystrokes 套件含 null、keystroke 中的 Object 不是 AWTKeyStroke、任意 keystroke 表示一個 KEY_TYPED 事件,或者任意 keystroke 已經映射到此 Component 的另一個焦點遍歷操作
從以下版本開始:
1.5
另請參見:
KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS, KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS, KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS

isLightweightComponent

public static boolean isLightweightComponent(Component c)
如果此元件是輕量的,也就是說,如果它沒有本機視窗系統同位體,則返回 true。

返回:
如果此元件是輕量的,則返回 true

reshape

@Deprecated
public void reshape(int x,
                               int y,
                               int w,
                               int h)
已過時。 從 JDK 5 開始,由 Component.setBounds(int, int, int, int) 取代。

移動此元件並調整其大小。

覆寫:
類別 Component 中的 reshape
參數:
x - 新的水平位置
y - 新的垂直位置
w - 新的寬度
h - 新的高度
另請參見:
Component.setBounds(int, int, int, int)

getBounds

public Rectangle getBounds(Rectangle rv)
將此元件的邊界存儲到“返回值”rv 中並返回 rv。如果 rvnull,則分派一個新的 Rectangle。如果調用者不希望在堆積(heap)空間上分派一個新的 Rectangle 物件,則這種 getBounds 是很有用的。

覆寫:
類別 Component 中的 getBounds
參數:
rv - 返回值,被修改為該元件的邊界
返回:
rv;如果 rvnull,則返回具有此元件邊界的新建 Rectangle

getSize

public Dimension getSize(Dimension rv)
將此元件的寬度/高度存儲到“返回值”rv 中並返回 rv。如果 rvnull,則分派一個新的 Dimension 物件。如果調用者不希望在堆積(heap)空間上分派一個新的 Dimension 物件,則這種 getSize 是很有用的。

覆寫:
類別 Component 中的 getSize
參數:
rv - 返回值,被修改為該元件的大小
返回:
rv

getLocation

public Point getLocation(Point rv)
將此元件的 x,y 原點存儲到“返回值”rv 中並返回 rv。如果 rvnull,則分派一個新的 Point。如果調用者不希望在堆積(heap)空間上分派一個新的 Point 物件,則這種 getLocation 是很有用的。

覆寫:
類別 Component 中的 getLocation
參數:
rv - 返回值,被修改為該元件的位置
返回:
rv

getX

public int getX()
返回元件原點的當前 x 坐標。此方法優於 component.getBounds().xcomponent.getLocation().x,因為它不會導致任何堆積(heap)空間分派。

覆寫:
類別 Component 中的 getX
返回:
元件原點的當前 x 坐標

getY

public int getY()
返回元件原點的當前 y 坐標。此方法優於 component.getBounds().ycomponent.getLocation().y,因為它不會導致任何堆積(heap)空間分派。

覆寫:
類別 Component 中的 getY
返回:
元件原點的當前 y 坐標

getWidth

public int getWidth()
返回此元件的當前寬度。此方法優於 component.getBounds().widthcomponent.getSize().width,因為它不會導致任何堆積(heap)空間分派。

覆寫:
類別 Component 中的 getWidth
返回:
此元件的當前寬度

getHeight

public int getHeight()
返回此元件的當前高度。此方法優於 component.getBounds().heightcomponent.getSize().height,因為它不會導致任何堆積(heap)空間分派。

覆寫:
類別 Component 中的 getHeight
返回:
此元件的當前高度

isOpaque

public boolean isOpaque()
如果此元件是完全不透明的,則返回 true。

不透明元件將每個像素繪製在其矩形邊界內。透明的元件則僅繪製部分像素或者不繪製任何像素,允許其底層像素“透視出來”。因此,沒有完全繪製其像素的元件則提供了一定程度的透明度。

保證總是完全繪製其內容的子類別應該覆寫此方法並返回 true。

覆寫:
類別 Component 中的 isOpaque
返回:
如果此元件是完全不透明的,則返回 true
另請參見:
setOpaque(boolean)

setOpaque

public void setOpaque(boolean isOpaque)
如果為 true,則該元件繪製其邊界內的所有像素。否則該元件可能不繪製部分或所有像素,從而允許其底層像素透視出來。

對於 JComponent 而言,此屬性的預設值是 false。但是對於大多數標準的 JComponent 子類別(如 JButtonJTree),此屬性的預設值與外觀有關。

參數:
isOpaque - 如果此元件應該是不透明的,則為 true
另請參見:
isOpaque()

computeVisibleRect

public void computeVisibleRect(Rectangle visibleRect)
返回該 Component 的“可見 rect 矩形”,即此元件及其所有祖先的可見矩形的交集。返回值存儲在 visibleRect 中。

參數:
visibleRect - 根據此元件及其所有祖先的所有可見矩形交集而計算出的 Rectangle,這是此方法的返回值
另請參見:
getVisibleRect()

getVisibleRect

public Rectangle getVisibleRect()
返回該 Component 的“可見矩形”,即此元件的可見矩形 new Rectangle(0, 0, getWidth(), getHeight()) 及其所有祖先的可見矩形的交集。

返回:
可見矩形

firePropertyChange

public void firePropertyChange(String propertyName,
                               boolean oldValue,
                               boolean newValue)
支持報告 boolean 屬性的綁定屬性更改。當更改了綁定屬性,並且向所有已註冊的 PropertyChangeListener 發送相應的 PropertyChangeEvent 時可以調用此方法。

覆寫:
類別 Component 中的 firePropertyChange
參數:
propertyName - 其值已更改的屬性
oldValue - 該屬性以前的值
newValue - 該屬性的新值

firePropertyChange

public void firePropertyChange(String propertyName,
                               int oldValue,
                               int newValue)
支持報告整數屬性的綁定屬性更改。當更改了綁定屬性,並且向所有已註冊的 PropertyChangeListener 發送相應的 PropertyChangeEvent 時可以調用此方法。

覆寫:
類別 Component 中的 firePropertyChange
參數:
propertyName - 其值已更改的屬性
oldValue - 該屬性以前的值
newValue - 該屬性的新值

firePropertyChange

public void firePropertyChange(String propertyName,
                               char oldValue,
                               char newValue)
從類別 Component 複製的描述
報告綁定屬性的改變。

覆寫:
類別 Component 中的 firePropertyChange
參數:
propertyName - 已改變的屬性的程式名稱
oldValue - 該屬性的舊值(char 型別)
newValue - 該屬性的新值(char 型別)
另請參見:
Component.firePropertyChange(java.lang.String, java.lang.Object, java.lang.Object)

fireVetoableChange

protected void fireVetoableChange(String propertyName,
                                  Object oldValue,
                                  Object newValue)
                           throws PropertyVetoException
支持報告約束 (constrained) 屬性的更改。當更改了約束屬性,並且向所有已註冊的 VetoableChangeListener 發送相應的 PropertyChangeEvent 時可以調用此方法。

參數:
propertyName - 對其進行偵聽的屬性名稱
oldValue - 該屬性的舊值
newValue - 該屬性的新值
拋出:
PropertyVetoException - 如果元件禁止設置該屬性

addVetoableChangeListener

public void addVetoableChangeListener(VetoableChangeListener listener)
向偵聽器列表添加一個 VetoableChangeListener。為所有屬性註冊該偵聽器。

參數:
listener - 要添加的 VetoableChangeListener

removeVetoableChangeListener

public void removeVetoableChangeListener(VetoableChangeListener listener)
從偵聽器列表移除一個 VetoableChangeListener。此方法移除了一個為所有屬性註冊的 VetoableChangeListener

參數:
listener - 要移除的 VetoableChangeListener

getVetoableChangeListeners

public VetoableChangeListener[] getVetoableChangeListeners()
返回在此元件上註冊的所有可否決更改偵聽器所組成的陣列。

返回:
元件的所有 VetoableChangeListener;如果當前沒有註冊任何可否決更改偵聽器,則返回一個空陣列
從以下版本開始:
1.4
另請參見:
addVetoableChangeListener(java.beans.VetoableChangeListener), removeVetoableChangeListener(java.beans.VetoableChangeListener)

getTopLevelAncestor

public Container getTopLevelAncestor()
返回此元件的頂層祖先(包含的 WindowApplet);如果尚未將此元件添加到任意容器中,則返回 null

返回:
此元件所在的頂層 Container;如果不在任何容器中,則返回 null

addAncestorListener

public void addAncestorListener(AncestorListener listener)
註冊 listener,從而當元件或其任意祖先移動,或者變得可見或不可見時該偵聽器將收到 AncestorEvent。從套件含層次結構中添加或移除元件或其祖先時,也發送這些事件。

參數:
listener - 要註冊的 AncestorListener
另請參見:
AncestorEvent

removeAncestorListener

public void removeAncestorListener(AncestorListener listener)
註銷 listener,使其不再接收 AncestorEvent

參數:
listener - 要移除的 AncestorListener
另請參見:
addAncestorListener(javax.swing.event.AncestorListener)

getAncestorListeners

public AncestorListener[] getAncestorListeners()
返回在此元件上註冊的所有祖先偵聽器所組成的陣列。

返回:
元件的所有 AncestorListener;如果當前沒有註冊任何祖先偵聽器,則返回一個空陣列
從以下版本開始:
1.4
另請參見:
addAncestorListener(javax.swing.event.AncestorListener), removeAncestorListener(javax.swing.event.AncestorListener)

getListeners

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 中的 getListeners
參數:
listenerType - 所請求的偵聽器的型別;此參數應該指定一個從 java.util.EventListener 繼承的介面
返回:
返回一個在此元件上註冊為 FooListener 的所有物件所組成的陣列;如果尚未添加這樣的偵聽器,則返回一個空陣列
拋出:
ClassCastException - 如果 listenerType 未指定一個實作 java.util.EventListener 的類別或介面
從以下版本開始:
1.3
另請參見:
getVetoableChangeListeners(), getAncestorListeners()

addNotify

public void addNotify()
通知此元件它現在已有了一個父元件。調用此方法時,通過 KeyboardAction 事件偵聽器設置父元件鏈。

覆寫:
類別 Container 中的 addNotify
另請參見:
registerKeyboardAction(java.awt.event.ActionListener, java.lang.String, javax.swing.KeyStroke, int)

removeNotify

public void removeNotify()
通知此元件它不再有父元件。調用此方法時,移除父元件鏈中所有已設置的 KeyboardAction

覆寫:
類別 Container 中的 removeNotify
另請參見:
registerKeyboardAction(java.awt.event.ActionListener, java.lang.String, javax.swing.KeyStroke, int)

repaint

public void repaint(long tm,
                    int x,
                    int y,
                    int width,
                    int height)
如果要顯示元件,則將指定的區域添加到髒區 (dirty region) 列表。指派完當前所有未完成的事件後重新繪製該元件。

覆寫:
類別 Component 中的 repaint
參數:
tm - 不使用此參數
x - 髒區的 x 值
y - 髒區的 y 值
width - 髒區的寬度
height - 髒區的高度
另請參見:
Component.isShowing(), RepaintManager.addDirtyRegion(javax.swing.JComponent, int, int, int, int)

repaint

public void repaint(Rectangle r)
如果要顯示該元件,則將指定的區域添加到髒區列表。指派完當前所有未完成的事件後重新繪製該元件。

參數:
r - 套件含髒區的 Rectangle
另請參見:
Component.isShowing(), RepaintManager.addDirtyRegion(javax.swing.JComponent, int, int, int, int)

revalidate

public void revalidate()
支持推遲的自動佈局。

調用 invalidate 並將此元件的 validateRoot 添加到需要驗證的元件列表中。指派完當前所有未完成的事件後進行驗證。換句話說,調用此方法後,將驗證瀏覽此元件的套件含層次結構時找到的第一個 validateRoot(如果有)。預設情況下,對 JRootPaneJScrollPaneJTextField 調用 isValidateRoot 返回 true。

當屬性值更改,從而影響此元件的大小、位置或內部佈局時,就對此元件自動調用此方法。這種自動更新不同於 AWT,因為通常來說,程序不再需要調用 validate 來獲得要更新的 GUI 的內容。

另請參見:
Component.invalidate(), Container.validate(), isValidateRoot(), RepaintManager.addInvalidComponent(javax.swing.JComponent)

isValidateRoot

public boolean isValidateRoot()
如果此方法返回 true,則此元件的子代調用 revalidate 將導致從此根開始對整棵階層樹進行驗證。預設情況下返回 false。JScrollPane 覆寫此方法並返回 true。

返回:
始終返回 false
另請參見:
revalidate(), Component.invalidate(), Container.validate()

isOptimizedDrawingEnabled

public boolean isOptimizedDrawingEnabled()
如果此元件平鋪顯示其子元件(也就是說,它可以保證子元件不重疊),則返回 true。通常,在此情況下重繪系統的效率非常高。無法作出此保證的 JComponent 子類別(如 JLayeredPane)應該覆寫此方法以返回 false。

返回:
始終返回 true

paintImmediately

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)

paintImmediately

public void paintImmediately(Rectangle r)
立即繪製指定的區域。

參數:
r - 套件含要繪製區域的 Rectangle

setDoubleBuffered

public void setDoubleBuffered(boolean aFlag)
設置此元件是否應該使用緩衝區進行繪製。如果設置為 true,則此元件的所有繪製將在一個離屏繪製緩衝區內完成。然後將該離屏繪製緩衝區複製到螢幕上。如果緩衝了某個 Component,並且還緩衝了它的某個祖先,則將使用該祖先緩衝區。

參數:
aFlag - 如果為 true,則設置此元件使用雙緩衝區進行緩衝

isDoubleBuffered

public boolean isDoubleBuffered()
返回此元件是否應該使用緩衝區進行繪製。

覆寫:
類別 Component 中的 isDoubleBuffered
返回:
如果此元件使用雙緩衝區進行緩衝,則返回 true;否則返回 false

getRootPane

public JRootPane getRootPane()
返回此元件的 JRootPane 祖先。

返回:
包含此元件的 JRootPane;如果未找到 JRootPane,則為 null

paramString

protected String paramString()
返回此 JComponent 的字元串表示形式。此方法僅在除錯時使用,對於各個實作,所返回字元串的內容和格式可能有所不同。返回的字元串可以為空,但不可以為 null

覆寫:
類別 Container 中的 paramString
返回:
JComponent 的字元串表示形式

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

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