JavaTM 2 Platform
Standard Ed. 6

java.awt
類別 Window

java.lang.Object
  繼承者 java.awt.Component
      繼承者 java.awt.Container
          繼承者 java.awt.Window
所有已實作的介面:
ImageObserver, MenuContainer, Serializable, Accessible
直接已知子類別:
BasicToolBarUI.DragWindow, Dialog, Frame, JWindow

public class Window
extends Container
implements Accessible

Window 物件是一個沒有邊界和選單欄的頂層視窗。視窗的預設佈局是 BorderLayout

建構視窗時,它必須擁有窗體、對話框或其他作為其所有者定義的視窗。

在多螢幕環境中,通過使用 Window(Window, GraphicsConfiguration) 建構 Window,可以在不同的螢幕設備上創建 WindowGraphicsConfiguration 物件是目標螢幕設備的 GraphicsConfiguration 物件之一。

在虛擬設備多螢幕環境中(其中桌面區域可以跨越多物理螢幕設備),所有配置的邊界都是相對於虛擬設備坐標系的。虛擬坐標系的原點位於主物理螢幕的左上角。是否使用負坐標取決於主物理螢幕在虛擬設備中的位置,如下圖所示。

圖表顯示的虛擬設備包含 4 個物理螢幕。主物理螢幕顯示坐標 (0,0),其他螢幕顯示 (-80,-100)。

在此環境中,調用 setLocation 時,必須傳遞一個虛擬坐標到此方法中。類似地,對 Frame 調用 getLocationOnScreen 將返回虛擬設備坐標。調用 GraphicsConfigurationgetBounds 方法,以尋找它在虛擬坐標系中的原點。

以下程式碼將 Window 的位置設置在 (10, 10)(相對於相應 GraphicsConfiguration 物理螢幕的原點)。如果不考慮 GraphicsConfiguration 的邊界,則 Window 位置應設置在 (10, 10)(相對於虛擬坐標系),並顯示在主物理螢幕上,該螢幕可能不同於指定 GraphicsConfiguration 的物理螢幕。

        Window w = new Window(Window owner, GraphicsConfiguration gc);
        Rectangle bounds = gc.getBounds();
        w.setLocation(10 + bounds.x, 10 + bounds.y);
 

註:頂層視窗(包括 WindowFrameDialog)的位置和大小受桌面視窗管理系統的控制。對 setLocationsetSizesetBounds 的調用是轉發到視窗管理系統的請求(不是指令)。將盡所有努力回應這樣的請求。但是,在某些情況下,視窗管理系統可以忽略這樣的請求,或修改請求的幾何結構,以放置和調整 Window 的大小,使之更好地與桌面設置比對。

由於本機事件處理的非同步特性,在處理完最後一個請求前,getBoundsgetLocationgetLocationOnScreengetSize 返回的結果可能不反映螢幕上視窗的實際幾何結構。在處理後續請求的過程中,視窗管理系統滿足這些請求時,這些值可能會相應地改變。

應用程序可以隨意設置不可見 Window 的大小和位置,但是當 Window 可見時,視窗管理系統可以隨後更改它的大小和/或位置。將產生一個或多個 ComponentEvent 來表示新的幾何結構。

視窗能夠產生以下 WindowEvents:WindowOpened、WindowClosed、indowGainedFocus、indowLostFocus。

從以下版本開始:
JDK1.0
另請參見:
WindowEvent, addWindowListener(java.awt.event.WindowListener), BorderLayout, 序列化表格

巢狀類別摘要
protected  class Window.AccessibleAWTWindow
          此類別實作對 Window 類別的可存取性支持。
 
從類別 java.awt.Container 繼承的巢狀類別/介面
Container.AccessibleAWTContainer
 
從類別 java.awt.Component 繼承的巢狀類別/介面
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
 
欄位摘要
 
從類別 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
 
建構子摘要
Window(Frame owner)
          建構一個新的、最初不可見的視窗,使用指定的 Frame 作為其所有者。
Window(Window owner)
          建構一個新的、最初不可見的視窗,使用指定 Window 作為其所有者。
Window(Window owner, GraphicsConfiguration gc)
          建構一個新的、最初不可見的視窗,使用指定的所有者 Window 和螢幕設備的 GraphicsConfiguration
 
方法摘要
 void addNotify()
          通過創建到本機螢幕資源的連接,使此視窗變得可顯示。
 void addPropertyChangeListener(PropertyChangeListener listener)
          將 PropertyChangeListener 添加到偵聽器列表。
 void addPropertyChangeListener(String propertyName, PropertyChangeListener listener)
          將 PropertyChangeListener 添加到某個特定屬性的偵聽器列表。
 void addWindowFocusListener(WindowFocusListener l)
          添加指定的視窗焦點偵聽器,以從此視窗接收視窗事件。
 void addWindowListener(WindowListener l)
          添加指定的視窗偵聽器,以從此視窗接收視窗事件。
 void addWindowStateListener(WindowStateListener l)
          添加指定的視窗狀態偵聽器,以從此視窗接收視窗事件。
 void applyResourceBundle(ResourceBundle rb)
          已過時。 從 J2SE 1.4 開始,由 Component.applyComponentOrientation 取代。
 void applyResourceBundle(String rbName)
          已過時。 從 J2SE 1.4 開始,由 Component.applyComponentOrientation 取代。
 void createBufferStrategy(int numBuffers)
          為此元件上的多緩衝創建一個新策略。
 void createBufferStrategy(int numBuffers, BufferCapabilities caps)
          根據所需緩衝區能力為此元件上的多緩衝創建新策略。
 void dispose()
          釋放由此 Window、其子元件及其擁有的所有子元件所使用的所有本機螢幕資源。
 AccessibleContext getAccessibleContext()
          獲取與此視窗關聯的 AccessibleContext。
 BufferStrategy getBufferStrategy()
          返回此元件使用的 BufferStrategy
 boolean getFocusableWindowState()
          返回如果此視窗滿足 isFocusableWindow 中列出的其他要求,其是否可以成為焦點視窗。
 Container getFocusCycleRootAncestor()
          始終返回 null,因為視窗沒有祖先;它們表示元件層次結構的頂層。
 Component getFocusOwner()
          如果此視窗為焦點視窗,則返回是焦點視窗的子元件;否則返回 null。
 Set<AWTKeyStroke> getFocusTraversalKeys(int id)
          獲取此視窗的焦點遍歷鍵。
 GraphicsConfiguration getGraphicsConfiguration()
          此方法返回由此視窗使用的 GraphicsConfiguration。
 List<Image> getIconImages()
          返回要作為此視窗的圖標顯示的圖像序列。
 InputContext getInputContext()
          獲取此視窗的輸入上下文。
<T extends EventListener>
T[]
getListeners(Class<T> listenerType)
          返回當前在此 Window 上註冊為 FooListener 的所有物件所組成的陣列。
 Locale getLocale()
          如果設置了區域,則獲取與此視窗關聯的 Locale 物件。
 Dialog.ModalExclusionType getModalExclusionType()
          返回此視窗的網要排斥型別。
 Component getMostRecentFocusOwner()
          返回此視窗的子元件,該子元件在此視窗為焦點視窗時將接收焦點。
 Window[] getOwnedWindows()
          返回包含此視窗當前擁有的所有視窗的陣列。
 Window getOwner()
          返回此視窗的所有者。
static Window[] getOwnerlessWindows()
          返回一個陣列,該陣列由此應用程序創建的所有沒有所有者的 Window 組成。
 Toolkit getToolkit()
          返回此窗體的工具套件。
 String getWarningString()
          獲取此視窗中顯示的警告字元串。
 WindowFocusListener[] getWindowFocusListeners()
          返回在此視窗註冊的所有視窗焦點偵聽器所組成的陣列。
 WindowListener[] getWindowListeners()
          返回在此視窗註冊的所有視窗偵聽器所組成的陣列。
static Window[] getWindows()
          返回一個陣列,該陣列由此應用程序創建的所有 Window(包括被擁有的和不被擁有的)組成。
 WindowStateListener[] getWindowStateListeners()
          返回在此視窗註冊的所有視窗狀態偵聽器所組成的陣列。
 void hide()
          已過時。 從 JDK 1.5 版開始,由 Component.setVisible(boolean) 取代。
 boolean isActive()
          返回此視窗是否為活動視窗。
 boolean isAlwaysOnTop()
          返回此視窗是否為 always-on-top 視窗。
 boolean isAlwaysOnTopSupported()
          返回此視窗是否支持 always-on-top 網要。
 boolean isFocusableWindow()
          返回此視窗是否可以成為焦點視窗,也就是說,此視窗或其任何子元件是否可以成為焦點所有者。
 boolean isFocusCycleRoot()
          始終返回 true,因為所有視窗必須是焦點遍歷循環的根。
 boolean isFocused()
          返回此視窗是否為焦點視窗。
 boolean isLocationByPlatform()
          如果此視窗下次可見時,出現在本機視窗作業系統的預設位置,則返回 true
 boolean isShowing()
          檢查此視窗是否顯示在螢幕上。
 void pack()
          調整此視窗的大小,以適合其子元件的首選大小和佈局。
 boolean postEvent(Event e)
          已過時。 從 JDK version 1.1 開始,由 dispatchEvent(AWTEvent) 取代。
protected  void processEvent(AWTEvent e)
          處理此視窗上的事件。
protected  void processWindowEvent(WindowEvent e)
          處理此視窗上發生的視窗事件:將它們指派到任何註冊的 WindowListener 物件。
protected  void processWindowFocusEvent(WindowEvent e)
          處理此視窗上發生的視窗焦點事件:將它們指派到任何註冊的 WindowFocusListener 物件。
protected  void processWindowStateEvent(WindowEvent e)
          處理此視窗上發生的視窗狀態事件:將它們指派到任何註冊的 WindowStateListener 物件。
 void removeNotify()
          通過移除此 Container 到其本機螢幕資源的連接,使其不可顯示。
 void removeWindowFocusListener(WindowFocusListener l)
          移除指定的視窗焦點偵聽器,以便不再從此視窗接收視窗事件。
 void removeWindowListener(WindowListener l)
          移除指定的視窗偵聽器,以便不再從此視窗接收視窗事件。
 void removeWindowStateListener(WindowStateListener l)
          移除指定的視窗狀態偵聽器,以便不再從此視窗接收視窗事件。
 void reshape(int x, int y, int width, int height)
          已過時。 從 JDK 1.1 版開始,由 setBounds(int, int, int, int) 取代。
 void setAlwaysOnTop(boolean alwaysOnTop)
          設置此視窗是否應該始終位於其他視窗上方。
 void setBounds(int x, int y, int width, int height)
          移動元件並調整其大小。
 void setBounds(Rectangle r)
          移動元件並調整其大小,使其符合新的有界矩形 r
 void setCursor(Cursor cursor)
          設置指定鼠標的鼠標圖像。
 void setFocusableWindowState(boolean focusableWindowState)
          設置如果此視窗滿足 isFocusableWindow 中列出的其他要求,其是否可以成為焦點視窗。
 void setFocusCycleRoot(boolean focusCycleRoot)
          不執行任何操作,因為視窗必須始終是焦點遍歷循環的根。
 void setIconImage(Image image)
          設置要作為此視窗圖標顯示的圖像。
 void setIconImages(List<? extends Image> icons)
          設置要作為此視窗的圖標顯示的圖像序列。
 void setLocationByPlatform(boolean locationByPlatform)
          設置視窗下次可見時應該出現的位置:本機視窗系統的預設位置,還是當前位置(由 getLocation 返回)。
 void setLocationRelativeTo(Component c)
          設置視窗相對於指定元件的位置。
 void setMinimumSize(Dimension minimumSize)
          將此視窗的最小大小設置為一個常數值。
 void setModalExclusionType(Dialog.ModalExclusionType exclusionType)
          指定此視窗的網要排斥型別。
 void setSize(Dimension d)
          調整元件的大小,使其寬度為 d.width,高度為 d.height
 void setSize(int width, int height)
          調整元件的大小,使其寬度為 width,高度為 height
 void setVisible(boolean b)
          根據參數 b 的值顯示或隱藏此 Window
 void show()
          已過時。 從 JDK 1.5 版開始,由 Component.setVisible(boolean) 取代。
 void toBack()
          如果此視窗是可視的,則將此視窗置於後方,如果它是焦點視窗或活動視窗,則會導致丟失焦點或活動狀態。
 void toFront()
          如果此視窗是可見的,則將此視窗置於前端,並可以將其設為焦點 Window。
 
從類別 java.awt.Container 繼承的方法
add, add, add, add, add, addContainerListener, addImpl, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paint, paintComponents, paramString, preferredSize, print, printComponents, processContainerEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, setLayout, transferFocusBackward, transferFocusDownCycle, update, validate, validateTree
 
從類別 java.awt.Component 繼承的方法
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphics, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPreferredSizeSet, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resize, resize, setBackground, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusUpCycle
 
從類別 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

建構子詳細資訊

Window

public Window(Frame owner)
建構一個新的、最初不可見的視窗,使用指定的 Frame 作為其所有者。該視窗將不可聚焦,除非其所有者正顯示在螢幕上。

如果存在安全管理器,則此方法首先調用安全管理器的 checkTopLevelWindow 方法(this 作為其參數),以確定是否必須使用警告標誌顯示該視窗。

參數:
owner - 要充當所有者的 Frame;如果此視窗沒有所有者,則該參數為 null
拋出:
IllegalArgumentException - 如果 ownerGraphicsConfiguration 不是來自螢幕設備
HeadlessException - 當 GraphicsEnvironment.isHeadless 返回 true
另請參見:
GraphicsEnvironment.isHeadless(), SecurityManager.checkTopLevelWindow(java.lang.Object), isShowing()

Window

public Window(Window owner)
建構一個新的、最初不可見的視窗,使用指定 Window 作為其所有者。此視窗將不可聚焦,除非其最近擁有的 FrameDialog 正顯示在螢幕上。

如果存在安全管理器,則此方法首先調用安全管理器的 checkTopLevelWindow 方法(this 作為其參數),以確定是否必須使用警告標誌顯示該視窗。

參數:
owner - 要充當所有者的 Window;如果此視窗沒有所有者,則該參數為 null
拋出:
IllegalArgumentException - 如果 ownerGraphicsConfiguration 不是來自螢幕設備
HeadlessException - 當 GraphicsEnvironment.isHeadless 返回 true
從以下版本開始:
1.2
另請參見:
GraphicsEnvironment.isHeadless(), SecurityManager.checkTopLevelWindow(java.lang.Object), isShowing()

Window

public Window(Window owner,
              GraphicsConfiguration gc)
建構一個新的、最初不可見的視窗,使用指定的所有者 Window 和螢幕設備的 GraphicsConfiguration。該視窗將不可聚焦,除非其最近擁有的 FrameDialog 正顯示在螢幕上。

如果存在安全管理器,則此方法首先調用安全管理器的 checkTopLevelWindow 方法(this 作為其參數),以確定是否必須使用警告標誌顯示該視窗。

參數:
owner - 要作為所有者的視窗;如果此視窗沒有所有者,則該參數為 null
gc - 目標螢幕設備的 GraphicsConfiguration;如果 gcnull,則使用系統預設的 GraphicsConfiguration
拋出:
IllegalArgumentException - 如果 gc 不是來自螢幕設備
HeadlessException - 當 GraphicsEnvironment.isHeadless() 返回 true
從以下版本開始:
1.3
另請參見:
GraphicsEnvironment.isHeadless(), SecurityManager.checkTopLevelWindow(java.lang.Object), GraphicsConfiguration.getBounds(), isShowing()
方法詳細資訊

getIconImages

public List<Image> getIconImages()
返回要作為此視窗的圖標顯示的圖像序列。

此方法返回內部存儲列表的一個副本,所以對返回物件的任何操作都不會影響視窗的行為。

返回:
此視窗的圖標圖像列表的副本;如果此視窗沒有圖標圖像,則返回空列表。
從以下版本開始:
1.6
另請參見:
setIconImages(java.util.List), setIconImage(Image)

setIconImages

public void setIconImages(List<? extends Image> icons)
設置要作為此視窗的圖標顯示的圖像序列。隨後調用 getIconImages 將總是返回 icons 列表的一個副本。

各平臺根據自身能力的不同,使用不同數量和尺寸的圖像作為視窗的圖標。

一開始便掃瞄 icons 列表,尋找最佳尺寸的圖像。如果列表包含幾個大小相同的圖像,則使用第一個圖像。

未指定圖標的、沒有所有者的視窗將使用平臺預設的圖標。如果沒有顯示覆寫,被擁有的視窗的圖標可以從其所有者繼承。將圖標設置為 null 或空列表將恢復預設行為。

註:根據上下文的不同(例如,視窗裝飾、視窗列表、任務欄等),本機視窗系統可以使用不同尺寸的不同圖像表示一個視窗。也可以對所有上下文使用一個圖像,或者根本不用圖像。

參數:
icons - 要顯示的圖標圖像列表。
從以下版本開始:
1.6
另請參見:
getIconImages(), setIconImage(Image)

setIconImage

public void setIconImage(Image image)
設置要作為此視窗圖標顯示的圖像。

將單個圖像指定為視窗的圖標時,可以使用此方法代替 setIconImages()

以下語句:

     setIconImage(image);
 
等價於:
     ArrayList imageList = new ArrayList();
     imageList.add(image);
     setIconImages(imageList);
 

註:根據上下文的不同(例如,視窗裝飾、視窗列表、任務欄等),本機視窗系統可以使用不同尺寸的不同圖像表示一個視窗。也可以對所有上下文使用一個圖像,或者根本不用圖像。

參數:
image - 要顯示的圖標圖像。
從以下版本開始:
1.6
另請參見:
setIconImages(java.util.List), getIconImages()

addNotify

public void addNotify()
通過創建到本機螢幕資源的連接,使此視窗變得可顯示。此方法由工具套件在內部進行調用,並且不應由程序直接調用。

覆寫:
類別 Container 中的 addNotify
從以下版本開始:
JDK1.0
另請參見:
Component.isDisplayable(), Container.removeNotify()

removeNotify

public void removeNotify()
通過移除此 Container 到其本機螢幕資源的連接,使其不可顯示。使容器變得不可顯示會使其所有子容器都變得不可顯示。此方法是通過工具套件內部調用的,不應該通過程序直接調用它。

覆寫:
類別 Container 中的 removeNotify
另請參見:
Component.isDisplayable(), Container.addNotify()

pack

public void pack()
調整此視窗的大小,以適合其子元件的首選大小和佈局。如果該視窗和/或其所有者還不可顯示,則在計算首選大小之前都將變得可顯示。在計算首選大小之後,將會驗證該視窗。

另請參見:
Component.isDisplayable()

setMinimumSize

public void setMinimumSize(Dimension minimumSize)
將此視窗的最小大小設置為一個常數值。隨後調用 getMinimumSize 將總是返回此值。如果當前視窗的大小小於 minimumSize,則視窗的大小將自動增大到最小大小。

如果隨後調用 setSizesetBounds 方法,且調用時使用的寬度或高度小於 setMinimumSize 指定的寬度或高度,則視窗將自動增大到 minimumSize 值。將最小大小設置為 null 將還原預設行為。

如果使用者試圖將視窗大小調整到 minimumSize 值以下,則該調整操作將受到限制。 此行為與平臺有關。

覆寫:
類別 Component 中的 setMinimumSize
參數:
minimumSize - 此視窗新的最小大小
從以下版本開始:
1.6
另請參見:
Component.setMinimumSize(java.awt.Dimension), Container.getMinimumSize(), Component.isMinimumSizeSet(), setSize(Dimension)

setSize

public void setSize(Dimension d)
調整元件的大小,使其寬度為 d.width,高度為 d.height

如果 d.width 值或 d.height 值小於之前調用 setMinimumSize 指定的最小大小,則它將自動增大。

覆寫:
類別 Component 中的 setSize
參數:
d - 指定元件新大小的尺寸
從以下版本開始:
1.6
另請參見:
Component.getSize(), setBounds(int, int, int, int), setMinimumSize(java.awt.Dimension)

setSize

public void setSize(int width,
                    int height)
調整元件的大小,使其寬度為 width,高度為 height

如果 width 值或 height 值小於之前調用 setMinimumSize 指定的最小大小,則它將自動增大。

覆寫:
類別 Component 中的 setSize
參數:
width - 元件的新寬度,單位是像素
height - 元件的新高度,單位是像素
從以下版本開始:
1.6
另請參見:
Component.getSize(), setBounds(int, int, int, int), setMinimumSize(java.awt.Dimension)

reshape

@Deprecated
public void reshape(int x,
                               int y,
                               int width,
                               int height)
已過時。 從 JDK 1.1 版開始,由 setBounds(int, int, int, int) 取代。

覆寫:
類別 Component 中的 reshape

setVisible

public void setVisible(boolean b)
根據參數 b 的值顯示或隱藏此 Window

覆寫:
類別 Component 中的 setVisible
參數:
b - 如為 true,則使 Window 可見,否則隱藏 Window。 如果 Window 和/或其所有者還不能顯示,則都不顯示。在使 Window 可見之前將驗證它。 如果 Window 已經可見,則此方法將 Window 帶到最前面。

如為 false,則隱藏此 Window、此 Window 的子元件,以及它擁有的所有子級。 調用 #setVisible(true) 可以重新使 Window 及其子元件可見。

另請參見:
Component.isDisplayable(), Component.setVisible(boolean), toFront(), dispose()

show

@Deprecated
public void show()
已過時。 從 JDK 1.5 版開始,由 Component.setVisible(boolean) 取代。

使視窗可見。如果視窗和/或其所有者還不能顯示,則都不顯示。在使視窗可見之前將驗證它。如果視窗已經可見,則此方法將視窗帶到最前面。

覆寫:
類別 Component 中的 show
另請參見:
Component.isDisplayable(), toFront()

hide

@Deprecated
public void hide()
已過時。 從 JDK 1.5 版開始,由 Component.setVisible(boolean) 取代。

隱藏此視窗、此視窗的子元件,以及它擁有的所有子級。調用 show 可以重新使視窗及其子元件可見。

覆寫:
類別 Component 中的 hide
另請參見:
show(), dispose()

dispose

public void dispose()
釋放由此 Window、其子元件及其擁有的所有子元件所使用的所有本機螢幕資源。即這些 Component 的資源將被破壞,它們使用的所有記憶體都將返回到作業系統,並將它們標記為不可顯示。

通過隨後調用 packshow 重新建構本機資源,可以再次顯示 Window 及其子元件。重新創建的 Window 及其子元件的狀態與釋放 Window 時這些物件的狀態一致(不考慮這些操作之間的其他更改)。

:當 Java 虛擬機器 (VM) 中最後的可顯示視窗被釋放後,虛擬機器可能會終止。有關更多資訊,請參閱 AWT Threading Issues

另請參見:
Component.isDisplayable(), pack(), show()

toFront

public void toFront()
如果此視窗是可見的,則將此視窗置於前端,並可以將其設為焦點 Window。

將此視窗放在堆疊(stack)空間順序的頂層,並在此虛擬機器中顯示在所有其他視窗的上面。如果此視窗不可見,則不會發生任何操作。有些平臺不允許擁有其他視窗的視窗顯示在它所擁有的視窗之上。有些平臺可能不允許此虛擬機器將其視窗放在本機應用程序視窗或其他虛擬機器視窗之上。此權限可能取決於此虛擬機器中的視窗是否已被設為焦點視窗。將進行所有嘗試來移動此視窗,使其位於堆疊(stack)空間順序中盡可能靠前的位置;但是,開發人員不應假定此方法在所有情況下都可以將此視窗移到所有其他視窗之上。

由於本機視窗系統多種多樣,因此無法保證對焦點視窗和活動視窗的更改能夠實作。在此視窗接收 WINDOW_GAINED_FOCUS 或 WINDOW_ACTIVATED 事件之前,開發人員不得假定此視窗是焦點視窗或活動視窗。在頂層視窗是焦點視窗的平臺上,此方法可能使此視窗成為焦點視窗(如果它還不是焦點視窗)。在堆疊(stack)空間順序通常不影響焦點視窗的平臺上,此方法可能維持焦點視窗和活動視窗不變。

如果此方法導致此視窗成為焦點視窗,而且此視窗是一個 Frame 或 Dialog,則它也將被啟動。如果此視窗是焦點視窗,但它不是一個 Frame 或 Dialog,則擁有此視窗的第一個 Frame 或 Dialog 將被啟動。

如果此視窗被網要對話框 (modal dialog) 阻塞,則阻塞對話框將置於最前端,仍然處於被阻塞視窗的前方。

另請參見:
toBack()

toBack

public void toBack()
如果此視窗是可視的,則將此視窗置於後方,如果它是焦點視窗或活動視窗,則會導致丟失焦點或活動狀態。

在此虛擬機器中,將此視窗放在堆疊(stack)空間順序的底部,並在其他所有視窗之後顯示此視窗。如果此視窗不可見,則不發生任何操作。有些平臺不允許其他視窗擁有的視窗出現在其所有者下方。將進行所有嘗試來移動此視窗,使其位於堆疊(stack)空間順序中盡可能靠後的位置;不過,開發人員不應假定此方法在所有情況下都可以將此視窗移到所有其他視窗之下。

由於本機視窗系統多種多樣,因此無法保證對焦點視窗和活動視窗的更改能夠實作。在此視窗接收 WINDOW_LOST_FOCUS 或 WINDOW_DEACTIVATED 事件之前,開發人員不得假定此視窗不再是焦點視窗或活動視窗。在頂層視窗為焦點視窗的平臺上,此方法可能導致此視窗不再是焦點狀態。在此情況下,此虛擬機器中緊跟其後的可作為焦點的視窗將成為焦點視窗。在堆疊(stack)空間順序通常不影響焦點視窗的平臺上,此方法可能維持焦點視窗和活動視窗不變。

另請參見:
toFront()

getToolkit

public Toolkit getToolkit()
返回此窗體的工具套件。

覆寫:
類別 Component 中的 getToolkit
返回:
此視窗的工具套件。
另請參見:
Toolkit, Toolkit.getDefaultToolkit(), Component.getToolkit()

getWarningString

public final String getWarningString()
獲取此視窗中顯示的警告字元串。如果此視窗不安全,則警告字元串將在此視窗的可視區域內顯示。如果存在安全管理器,並且在視窗作為一個參數傳遞到安全管理器的 checkTopLevelWindow 方法時,該方法返回 false,那麼視窗是不安全的。

如果此視窗是安全的,則 getWarningString 返回 null。如果此視窗是不安全的,則此方法檢查系統屬性 awt.appletWarning,並返回此屬性的字元串值。

返回:
此視窗的警告字元串。
另請參見:
SecurityManager.checkTopLevelWindow(java.lang.Object)

getLocale

public Locale getLocale()
如果設置了區域,則獲取與此視窗關聯的 Locale 物件。如果未設置區域,則返回預設的區域。

覆寫:
類別 Component 中的 getLocale
返回:
為此視窗設置的區域。
從以下版本開始:
JDK1.1
另請參見:
Locale

getInputContext

public InputContext getInputContext()
獲取此視窗的輸入上下文。視窗始終具有一個輸入上下文,如果子元件沒有創建並設置自己的輸入上下文,則可以共享該輸入上下文。

覆寫:
類別 Component 中的 getInputContext
返回:
元件使用的輸入上下文,如果可以確定沒有上下文,則返回 null
從以下版本開始:
1.2
另請參見:
Component.getInputContext()

setCursor

public void setCursor(Cursor cursor)
設置指定鼠標的鼠標圖像。

如果 Java 平臺實作和/或本機系統不支持更改鼠標鼠標形狀,那麼此方法將沒有任何視覺效果。

覆寫:
類別 Component 中的 setCursor
參數:
cursor - 由 Cursor 類別定義的常數之一。如果此參數為 null,則此視窗的鼠標將被設置為型別 Cursor.DEFAULT_CURSOR。
從以下版本開始:
JDK1.1
另請參見:
Component.getCursor(), Cursor

getOwner

public Window getOwner()
返回此視窗的所有者。

從以下版本開始:
1.2

getOwnedWindows

public Window[] getOwnedWindows()
返回包含此視窗當前擁有的所有視窗的陣列。

從以下版本開始:
1.2

getWindows

public static Window[] getWindows()
返回一個陣列,該陣列由此應用程序創建的所有 Window(包括被擁有的和不被擁有的)組成。 如果從 applet 調用此方法,則返回陣列只包括該 applet 可存取的 Window

警告: 此方法可以返回系統創建的視窗,如列印對話框。應用程序不應該假定這些對話框存在,也不應該假定任何與這些對話框有關的內容(如元件位置、LayoutManager 或序列化)存在。

從以下版本開始:
1.6
另請參見:
Frame.getFrames(), getOwnerlessWindows()

getOwnerlessWindows

public static Window[] getOwnerlessWindows()
返回一個陣列,該陣列由此應用程序創建的所有沒有所有者的 Window 組成。它們包括 Frame 以及沒有所有者的 DialogWindow。 如果從 applet 調用此方法,則返回陣列只包括該 applet 可存取的 Window

警告: 此方法可以返回系統創建的視窗,如列印對話框。應用程序不應該假定這些對話框存在,也不應該假定任何與這些對話框有關的內容(如元件位置、LayoutManager 或序列化)存在。

從以下版本開始:
1.6
另請參見:
Frame.getFrames(), getWindows(sun.awt.AppContext)

setModalExclusionType

public void setModalExclusionType(Dialog.ModalExclusionType exclusionType)
指定此視窗的網要排斥型別。如果一個視窗是網要排斥的,則該視窗不會被某些網要對話框阻塞。有關可能的網要排斥型別,請參閱 Dialog.ModalExclusionType

如果不支持給定型別,則使用 NO_EXCLUDE

註:如果將可見視窗更改為網要排斥型別,則只有在該視窗被隱藏然後再次出現後才有效。

參數:
exclusionType - 此視窗的網要排斥型別;null 值等價於 NO_EXCLUDE
拋出:
SecurityException - 如果調用執行緒沒有權限使用給定 exclusionType 設置視窗的網要排斥屬性
從以下版本開始:
1.6
另請參見:
Dialog.ModalExclusionType, getModalExclusionType(), Toolkit.isModalExclusionTypeSupported(java.awt.Dialog.ModalExclusionType)

getModalExclusionType

public Dialog.ModalExclusionType getModalExclusionType()
返回此視窗的網要排斥型別。

返回:
此視窗的網要排斥型別
從以下版本開始:
1.6
另請參見:
Dialog.ModalExclusionType, setModalExclusionType(java.awt.Dialog.ModalExclusionType)

addWindowListener

public void addWindowListener(WindowListener l)
添加指定的視窗偵聽器,以從此視窗接收視窗事件。如果 l 為 null,則不拋出任何異常,且不執行任何操作。

有關 AWT 執行緒網要的詳細資訊,請參考 AWT Threading Issues

參數:
l - 視窗偵聽器
另請參見:
removeWindowListener(java.awt.event.WindowListener), getWindowListeners()

addWindowStateListener

public void addWindowStateListener(WindowStateListener l)
添加指定的視窗狀態偵聽器,以從此視窗接收視窗事件。如果 lnull,則不拋出任何異常,且不執行任何操作。

有關 AWT 執行緒網要的詳細資訊,請參考 AWT Threading Issues

參數:
l - 視窗狀態偵聽器
從以下版本開始:
1.4
另請參見:
removeWindowStateListener(java.awt.event.WindowStateListener), getWindowStateListeners()

addWindowFocusListener

public void addWindowFocusListener(WindowFocusListener l)
添加指定的視窗焦點偵聽器,以從此視窗接收視窗事件。如果 l 為 null,則不拋出任何異常,且不執行任何操作。

有關 AWT 執行緒網要的詳細資訊,請參考 AWT Threading Issues

參數:
l - 視窗焦點偵聽器
從以下版本開始:
1.4
另請參見:
removeWindowFocusListener(java.awt.event.WindowFocusListener), getWindowFocusListeners()

removeWindowListener

public void removeWindowListener(WindowListener l)
移除指定的視窗偵聽器,以便不再從此視窗接收視窗事件。如果 l 為 null,則不拋出任何異常,且不執行任何操作。

有關 AWT 執行緒網要的詳細資訊,請參考 AWT Threading Issues

參數:
l - 視窗偵聽器
另請參見:
addWindowListener(java.awt.event.WindowListener), getWindowListeners()

removeWindowStateListener

public void removeWindowStateListener(WindowStateListener l)
移除指定的視窗狀態偵聽器,以便不再從此視窗接收視窗事件。如果 lnull,則不拋出任何異常,且不執行任何操作。

有關 AWT 執行緒網要的詳細資訊,請參考 AWT Threading Issues

參數:
l - 視窗狀態偵聽器
從以下版本開始:
1.4
另請參見:
addWindowStateListener(java.awt.event.WindowStateListener), getWindowStateListeners()

removeWindowFocusListener

public void removeWindowFocusListener(WindowFocusListener l)
移除指定的視窗焦點偵聽器,以便不再從此視窗接收視窗事件。如果 l 為 null,則不拋出任何異常,且不執行任何操作。

有關 AWT 執行緒網要的詳細資訊,請參考 AWT Threading Issues

參數:
l - 視窗焦點偵聽器
從以下版本開始:
1.4
另請參見:
addWindowFocusListener(java.awt.event.WindowFocusListener), getWindowFocusListeners()

getWindowListeners

public WindowListener[] getWindowListeners()
返回在此視窗註冊的所有視窗偵聽器所組成的陣列。

返回:
此視窗的所有 WindowListener;如果當前未註冊視窗偵聽器,則返回一個空陣列
從以下版本開始:
1.4
另請參見:
addWindowListener(java.awt.event.WindowListener), removeWindowListener(java.awt.event.WindowListener)

getWindowFocusListeners

public WindowFocusListener[] getWindowFocusListeners()
返回在此視窗註冊的所有視窗焦點偵聽器所組成的陣列。

返回:
此視窗的所有 WindowFocusListener;如果當前未註冊視窗焦點偵聽器,則返回一個空陣列
從以下版本開始:
1.4
另請參見:
addWindowFocusListener(java.awt.event.WindowFocusListener), removeWindowFocusListener(java.awt.event.WindowFocusListener)

getWindowStateListeners

public WindowStateListener[] getWindowStateListeners()
返回在此視窗註冊的所有視窗狀態偵聽器所組成的陣列。

返回:
此視窗的所有 WindowStateListener;如果當前未註冊視窗狀態偵聽器,則返回一個空陣列
從以下版本開始:
1.4
另請參見:
addWindowStateListener(java.awt.event.WindowStateListener), removeWindowStateListener(java.awt.event.WindowStateListener)

getListeners

public <T extends EventListener> T[] getListeners(Class<T> listenerType)
返回當前在此 Window 上註冊為 FooListener 的所有物件所組成的陣列。FooListener 是使用 addFooListener 方法註冊的。

可以使用類別文本指定 listenerType 參數,如 FooListener.class。例如,可以使用以下程式碼查詢 Window w,獲取其視窗偵聽器:

WindowListener[] wls = (WindowListener[])(w.getListeners(WindowListener.class));
如果不存在此類別偵聽器,則此方法將返回一個空陣列。

覆寫:
類別 Container 中的 getListeners
參數:
listenerType - 請求的偵聽器的型別;此參數應指定一個從 java.util.EventListener 繼承的介面
返回:
在此視窗註冊為 FooListener 的所有物件所組成的陣列;如果未添加此類別偵聽器,則返回一個空陣列
拋出:
ClassCastException - 如果 listenerType 未指定一個實作 java.util.EventListener 的類別或介面
從以下版本開始:
1.3
另請參見:
getWindowListeners()

processEvent

protected void processEvent(AWTEvent e)
處理此視窗上的事件。如果此事件為一個 WindowEvent,它將調用 processWindowEvent 方法,否則將調用其父級類別的 processEvent

注意,如果此事件參數為 null,則此行為是不明確的,可能導致異常。

覆寫:
類別 Container 中的 processEvent
參數:
e - 事件
另請參見:
Component.processComponentEvent(java.awt.event.ComponentEvent), Component.processFocusEvent(java.awt.event.FocusEvent), Component.processKeyEvent(java.awt.event.KeyEvent), Component.processMouseEvent(java.awt.event.MouseEvent), Component.processMouseMotionEvent(java.awt.event.MouseEvent), Component.processInputMethodEvent(java.awt.event.InputMethodEvent), Component.processHierarchyEvent(java.awt.event.HierarchyEvent), Component.processMouseWheelEvent(java.awt.event.MouseWheelEvent)

processWindowEvent

protected void processWindowEvent(WindowEvent e)
處理此視窗上發生的視窗事件:將它們指派到任何註冊的 WindowListener 物件。註:只有為此元件啟用了視窗事件時,此方法才有可能被調用;這在存在以下條件之一時發生:

注意,如果此事件參數為 null,則此行為是不明確的,可能導致異常。

參數:
e - 視窗事件
另請參見:
Component.enableEvents(long)

processWindowFocusEvent

protected void processWindowFocusEvent(WindowEvent e)
處理此視窗上發生的視窗焦點事件:將它們指派到任何註冊的 WindowFocusListener 物件。註:只有為此元件啟用了視窗事件時,此方法才有可能被調用。這在存在以下條件之一時發生:

注意,如果此事件參數為 null,則此行為是不明確的,可能導致異常。

參數:
e - 視窗焦點事件
從以下版本開始:
1.4
另請參見:
Component.enableEvents(long)

processWindowStateEvent

protected void processWindowStateEvent(WindowEvent e)
處理此視窗上發生的視窗狀態事件:將它們指派到任何註冊的 WindowStateListener 物件。註:只有為此元件啟用了視窗事件時,此方法才有可能被調用。這在存在以下條件之一時發生:

注意,如果此事件參數為 null,則此行為是不明確的,可能導致異常。

參數:
e - 視窗狀態事件
從以下版本開始:
1.4
另請參見:
Component.enableEvents(long)

setAlwaysOnTop

public final void setAlwaysOnTop(boolean alwaysOnTop)
                          throws SecurityException
設置此視窗是否應該始終位於其他視窗上方。如果存在多個 always-on-top 視窗,則它們的相對順序沒有指定,該順序與平臺有關。

如果某個其他視窗已經是 always-on-top,則不指定這些視窗之間的相互順序(與平臺有關)。任何視窗都不會置於 always-on-top 視窗之上,除非它也是一個 always-on-top 視窗。

所有 always-on-top 視窗擁有的視窗將繼承此狀態,自動成為 always-on-top 視窗。如果某個視窗不再是 always-on-top 視窗,則它所擁有的視窗也不再是 always-on-top 視窗。當 always-on-top 視窗調用 toBack 時,其 always-on-top 狀態將設置為 false

如果對某個視窗調用此方法且參數值為 true,並且該視窗可見,平臺也支持此視窗為 always-on-top,那麼該視窗將立即向前,「鎖定」在最頂層位置。如果視窗當前不可見,那麼此方法將 always-on-top 狀態設置為 true,但視窗不會向前。如果以後顯示該視窗,那麼它將 always-on-top。

如果 alwaysOnToptrue,則此方法可使視窗 always-on-top。如果視窗是可見的(這包括將視窗前置,即 toFront),則將其“鎖定”在最頂層的位置。如果視窗不可見,則除了設置 always-on-top 的屬性之外,不執行任何操作。如果以後視窗顯示出來,則該視窗將 always-on-top。如果視窗已經位於頂層,則此調用不執行任何操作。

如果對某個視窗調用此方法且參數值為 false,則 always-on-top 狀態被設置為常規。該視窗保持在最頂層,但對於任何其他視窗來說,其 z-order 可以更改。對已經是常規狀態的視窗調用此方法且參數值為 false 將無效。如果沒有其他 always-on-top 視窗,將 always-on-top 狀態設置為 false 對視窗的相對 z-order 沒有影響。

:有些平臺可能不支持 always-on-top 視窗。要檢測當前平臺是否支持 always-on-top 視窗,請使用 Toolkit.isAlwaysOnTopSupported()isAlwaysOnTopSupported()。如果工具套件或此視窗不支持 always-on-top 網要,則調用此方法無效。

如果安裝了 SecurityManager,則必須授予調用執行緒 AWTPermission "setWindowAlwaysOnTop" 權限,才能設置此屬性值。如果未授予此權限,則此方法將拋出 SecurityException,並且屬性的當前值保持不變。

參數:
alwaysOnTop - 如果視窗應該始終位於其他視窗上方,則該參數為 true
拋出:
SecurityException - 如果調用執行緒無權設置 always-on-top 屬性值。
從以下版本開始:
1.5
另請參見:
isAlwaysOnTop(), toFront(), toBack(), AWTPermission, isAlwaysOnTopSupported(), Toolkit.isAlwaysOnTopSupported()

isAlwaysOnTopSupported

public boolean isAlwaysOnTopSupported()
返回此視窗是否支持 always-on-top 網要。某些平臺不支持 always-on-top 視窗,而另一些只支持某種 top-level(頂層)視窗;例如,某個平臺不支持 always-on-top 網要對話框。

返回:
如果工具套件和此視窗支持 always-on-top 網要,則返回 true;如果此視窗不支持 always-on-top 網要,或者工具套件不支持 always-on-top 視窗,則返回 false
從以下版本開始:
1.6
另請參見:
setAlwaysOnTop(boolean), Toolkit.isAlwaysOnTopSupported()

isAlwaysOnTop

public final boolean isAlwaysOnTop()
返回此視窗是否為 always-on-top 視窗。

返回:
如果此視窗處於 always-on-top 狀態,則返回 true,否則,返回 false
從以下版本開始:
1.5
另請參見:
setAlwaysOnTop(boolean)

getFocusOwner

public Component getFocusOwner()
如果此視窗為焦點視窗,則返回是焦點視窗的子元件;否則返回 null。

返回:
具有焦點的子元件;如果此視窗不是焦點視窗,則返回 null
另請參見:
getMostRecentFocusOwner(), isFocused()

getMostRecentFocusOwner

public Component getMostRecentFocusOwner()
返回此視窗的子元件,該子元件在此視窗為焦點視窗時將接收焦點。如果此視窗當前為焦點視窗,則此方法將返回與 getFocusOwner() 相同的元件。如果此視窗不是焦點視窗,則返回最近請求焦點的子元件。如果沒有子元件請求過焦點,並且這是一個可成為焦點的視窗,則返回此視窗最初可成為焦點的元件。如果沒有子元件請求過焦點,並且這是一個不能成為焦點的視窗,則返回 null。

返回:
在此視窗成為焦點視窗時,將接收焦點的子元件
從以下版本開始:
1.4
另請參見:
getFocusOwner(), isFocused(), isFocusableWindow()

isActive

public boolean isActive()
返回此視窗是否為活動視窗。僅有一個 Frame 或 Dialog 可以處於活動狀態。本機視窗系統表示具有特殊修飾的活動視窗或其子視窗,如高亮的標題欄。活動視窗始終是焦點視窗,或者是擁有該焦點視窗的第一個 Frame 或 Dialog。

返回:
此視窗是否為活動視窗。
從以下版本開始:
1.4
另請參見:
isFocused()

isFocused

public boolean isFocused()
返回此視窗是否為焦點視窗。如果存在焦點所有者,則焦點視窗就是(或者包含)焦點所有者的視窗。如果不存在焦點所有者,則沒有作為焦點的視窗。

如果焦點視窗是一個 Frame 或 Dialog,那麼它同時也是一個活動視窗。否則,活動視窗將是擁有焦點視窗的第一個 Frame 或 Dialog。

返回:
此視窗是否為焦點視窗。
從以下版本開始:
1.4
另請參見:
isActive()

getFocusTraversalKeys

public Set<AWTKeyStroke> getFocusTraversalKeys(int id)
獲取此視窗的焦點遍歷鍵。(有關每個鍵的完整描述,請參閱 setFocusTraversalKeys。)

如果未為此視窗顯式設置遍歷鍵,則返回此視窗的父視窗的遍歷鍵。如果未為此視窗的任何祖先顯式設置遍歷鍵,則返回當前 KeyboardFocusManager 的預設遍歷鍵。

覆寫:
類別 Container 中的 getFocusTraversalKeys
參數:
id - KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS、KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS、KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS 或 KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS 之一
返回:
指定鍵的 AWTKeyStroke
拋出:
IllegalArgumentException - 如果 id 不是 KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS、KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS、KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS 或 KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS 之一
從以下版本開始:
1.4
另請參見:
Container.setFocusTraversalKeys(int, java.util.Set), KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS, KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS, KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS, KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS

setFocusCycleRoot

public final void setFocusCycleRoot(boolean focusCycleRoot)
不執行任何操作,因為視窗必須始終是焦點遍歷循環的根。忽略傳入的值。

覆寫:
類別 Container 中的 setFocusCycleRoot
參數:
focusCycleRoot - 忽略此值
從以下版本開始:
1.4
另請參見:
isFocusCycleRoot(), Container.setFocusTraversalPolicy(java.awt.FocusTraversalPolicy), Container.getFocusTraversalPolicy()

isFocusCycleRoot

public final boolean isFocusCycleRoot()
始終返回 true,因為所有視窗必須是焦點遍歷循環的根。

覆寫:
類別 Container 中的 isFocusCycleRoot
返回:
true
從以下版本開始:
1.4
另請參見:
setFocusCycleRoot(boolean), Container.setFocusTraversalPolicy(java.awt.FocusTraversalPolicy), Container.getFocusTraversalPolicy()

getFocusCycleRootAncestor

public final Container getFocusCycleRootAncestor()
始終返回 null,因為視窗沒有祖先;它們表示元件層次結構的頂層。

覆寫:
類別 Component 中的 getFocusCycleRootAncestor
返回:
null
從以下版本開始:
1.4
另請參見:
Container.isFocusCycleRoot()

isFocusableWindow

public final boolean isFocusableWindow()
返回此視窗是否可以成為焦點視窗,也就是說,此視窗或其任何子元件是否可以成為焦點所有者。對於可成為焦點的 Frame 或 Dialog,其可成為焦點的視窗狀態必須設置為 true。對於不可成為焦點的 Frame 或 Dialog 的視窗,其可成為焦點的視窗狀態必須設置為 true,其最近擁有的 Frame 或 Dialog 必須顯示在螢幕上,而且它必須至少包含其焦點遍歷循環中的一個元件。如果未滿足這些條件中的任何一個條件,則此視窗及其任何子元件都不能成為焦點所有者。

返回:
如果此視窗可以成為焦點視窗,則返回 true;否則返回 false
從以下版本開始:
1.4
另請參見:
getFocusableWindowState(), setFocusableWindowState(boolean), isShowing(), Component.isFocusable()

getFocusableWindowState

public boolean getFocusableWindowState()
返回如果此視窗滿足 isFocusableWindow 中列出的其他要求,其是否可以成為焦點視窗。如果此方法返回 false,則 isFocusableWindow 也將返回 false。如果此方法返回 true,則 isFocusableWindow 可能返回 true,也可能返回 false,具體取決於視窗要成為焦點視窗所必須滿足的其他要求。

預設情況下,所有視窗都具有 focusable 的視窗狀態 true

返回:
此視窗是否可成為焦點視窗
從以下版本開始:
1.4
另請參見:
isFocusableWindow(), setFocusableWindowState(boolean), isShowing(), Component.setFocusable(boolean)

setFocusableWindowState

public void setFocusableWindowState(boolean focusableWindowState)
設置如果此視窗滿足 isFocusableWindow 中列出的其他要求,其是否可以成為焦點視窗。如果此視窗可成為焦點視窗狀態設置為 false,則 isFocusableWindow 將返回 false。如果此視窗的可成為焦點的視窗狀態設置為 true,則 isFocusableWindow 可能返回 true,也可能返回 false,具體取決於要成為焦點的視窗所必須滿足的其他要求。

將視窗的焦點狀態設置為 false 是 AWT 標識應用程序的標準機制,AWT 是可用作浮動調色板或工具欄的視窗,因此應為是不可為焦點的視窗。在可見的 Window 上設置焦點狀態,可能在某些平臺上產生延遲的結果 — 只有在 Window 成為隱藏視窗,然後再可見後才發生實際的更改。為確保行為跨平臺的一致性,當 Window 不可見時設置 Window 的焦點狀態,然後再顯示它。

參數:
focusableWindowState - 此視窗是否可以成為焦點視窗
從以下版本開始:
1.4
另請參見:
isFocusableWindow(), getFocusableWindowState(), isShowing(), Component.setFocusable(boolean)

addPropertyChangeListener

public void addPropertyChangeListener(PropertyChangeListener listener)
將 PropertyChangeListener 添加到偵聽器列表。為此類別的所有綁定 (bound) 屬性註冊偵聽器,包括: 注意,如果此視窗在繼承一個綁定屬性,則不觸發任何事件來回應繼承屬性中的更改。

如果偵聽器為 null,則不拋出任何異常,且不執行任何操作。

覆寫:
類別 Container 中的 addPropertyChangeListener
參數:
listener - 要添加的 PropertyChangeListener
另請參見:
Component.removePropertyChangeListener(java.beans.PropertyChangeListener), addPropertyChangeListener(java.lang.String,java.beans.PropertyChangeListener)

addPropertyChangeListener

public void addPropertyChangeListener(String propertyName,
                                      PropertyChangeListener listener)
將 PropertyChangeListener 添加到某個特定屬性的偵聽器列表。指定的屬性可以是使用者定義的,也可以是下列屬性之一: 注意,如果此視窗在繼承一個綁定屬性,則不觸發任何事件來回應繼承屬性中的更改。

如果偵聽器為 null,則不拋出任何異常,且不執行任何操作。

覆寫:
類別 Container 中的 addPropertyChangeListener
參數:
propertyName - 上文列出的屬性名之一
listener - 要添加的 PropertyChangeListener
另請參見:
addPropertyChangeListener(java.beans.PropertyChangeListener), Component.removePropertyChangeListener(java.beans.PropertyChangeListener)

postEvent

@Deprecated
public boolean postEvent(Event e)
已過時。 從 JDK version 1.1 開始,由 dispatchEvent(AWTEvent) 取代。

指定者:
介面 MenuContainer 中的 postEvent
覆寫:
類別 Component 中的 postEvent

isShowing

public boolean isShowing()
檢查此視窗是否顯示在螢幕上。

覆寫:
類別 Component 中的 isShowing
返回:
如果正在顯示元件,則返回 true;否則返回 false
另請參見:
Component.setVisible(boolean)

applyResourceBundle

@Deprecated
public void applyResourceBundle(ResourceBundle rb)
已過時。 從 J2SE 1.4 開始,由 Component.applyComponentOrientation 取代。


applyResourceBundle

@Deprecated
public void applyResourceBundle(String rbName)
已過時。 從 J2SE 1.4 開始,由 Component.applyComponentOrientation 取代。


getAccessibleContext

public AccessibleContext getAccessibleContext()
獲取與此視窗關聯的 AccessibleContext。對於視窗,AccessibleContext 採取 AccessibleAWTWindow 的形式。如有必要,創建新的 AccessibleAWTWindow 實例。

指定者:
介面 Accessible 中的 getAccessibleContext
覆寫:
類別 Component 中的 getAccessibleContext
返回:
充當此視窗的 AccessibleContext 的 AccessibleAWTWindow
從以下版本開始:
1.3

getGraphicsConfiguration

public GraphicsConfiguration getGraphicsConfiguration()
此方法返回由此視窗使用的 GraphicsConfiguration。

覆寫:
類別 Component 中的 getGraphicsConfiguration
返回:
Component 使用的 GraphicsConfiguration,或者返回 null
從以下版本開始:
1.3

setLocationRelativeTo

public void setLocationRelativeTo(Component c)
設置視窗相對於指定元件的位置。

如果元件當前未顯示,或者 cnull,則此視窗將置於螢幕的中央。中點可以使用 GraphicsEnvironment.getCenterPoint 確定。

如果該元件的底部在螢幕外,則將該視窗放置在 Component 最接近視窗中心的一側。因此,如果 Component 在螢幕的右部,則 Window 將被放置在左部,反之亦然。

參數:
c - 確定視窗位置涉及的元件
從以下版本開始:
1.4
另請參見:
GraphicsEnvironment.getCenterPoint()

createBufferStrategy

public void createBufferStrategy(int numBuffers)
為此元件上的多緩衝創建一個新策略。多緩衝對於呈現性能非常有用。此方法試圖根據提供的緩衝區數創建可用的最佳策略。它將始終根據該緩衝區數創建 BufferStrategy。首先嘗試 page-flipping 策略,然後使用加速緩衝區嘗試 blitting 策略。最後使用不加速的 blitting 策略。

每次調用此方法時,將丟棄此元件的現有緩衝策略。

參數:
numBuffers - 要創建的緩衝區數
拋出:
IllegalArgumentException - 如果 numBuffers 小於 1。
IllegalStateException - 如果元件不可顯示
從以下版本開始:
1.4
另請參見:
Component.isDisplayable(), getBufferStrategy()

createBufferStrategy

public void createBufferStrategy(int numBuffers,
                                 BufferCapabilities caps)
                          throws AWTException
根據所需緩衝區能力為此元件上的多緩衝創建新策略。在只需要加速的記憶體或頁面翻轉(由緩衝區能力指定)時,這很有用。

每次調用此方法時,將丟棄此元件的現有緩衝策略。

參數:
numBuffers - 要創建的緩衝區數,包括前緩衝區
caps - 創建緩衝策略所需的能力;不能為 null
拋出:
AWTException - 如果提供的能力不受支持或未得到滿足;這是有可能發生的,例如,如果當前無足夠的可用加速記憶體,或者指定了頁翻轉,但不可能實作。
IllegalArgumentException - 如果 numBuffers 小於 1,或者 caps 為 null
從以下版本開始:
1.4
另請參見:
getBufferStrategy()

getBufferStrategy

public BufferStrategy getBufferStrategy()
返回此元件使用的 BufferStrategy。如果尚未創建或已經釋放了 BufferStrategy,那麼此方法將返回 null。

返回:
此元件使用的緩衝策略
從以下版本開始:
1.4
另請參見:
createBufferStrategy(int)

setLocationByPlatform

public void setLocationByPlatform(boolean locationByPlatform)
設置視窗下次可見時應該出現的位置:本機視窗系統的預設位置,還是當前位置(由 getLocation 返回)。此行為模擬顯示的本機視窗,而不是以程式方式設置其位置。如果未顯式設置視窗的位置,那麼大多數視窗作業系統將重疊顯示視窗。一旦視窗顯示在螢幕上,其實際位置就被確定。

還可以通過將系統屬性 "java.awt.Window.locationByPlatform" 設置為 "true" 來啟用此行為,但應優先考慮調用此方法。

在調用 setLocationByPlatform 清除視窗的此屬性之後,調用 setVisiblesetLocationsetBounds

例如,在執行以下程式碼後:

setLocationByPlatform(true); setVisible(true); boolean flag = isLocationByPlatform();
視窗將顯示在平臺的預設位置,flag 將為 false

在以下範例中:

setLocationByPlatform(true); setLocation(10, 10); boolean flag = isLocationByPlatform(); setVisible(true);
視窗將顯示在 (10, 10) 的位置,flag 將為 false

參數:
locationByPlatform - 如果此視窗應出現在預設位置,則為 true,如果應出現在當前位置,則為 false
拋出:
IllegalComponentStateException - 如果此視窗顯示在螢幕上,且 locationByPlatform 為 true
從以下版本開始:
1.5
另請參見:
Component.setLocation(int, int), isShowing(), setVisible(boolean), isLocationByPlatform(), System.getProperty(String)

isLocationByPlatform

public boolean isLocationByPlatform()
如果此視窗下次可見時,出現在本機視窗作業系統的預設位置,則返回 true。如果視窗顯示在螢幕上,則此方法始終返回 false

返回:
此視窗是否將出現在預設位置
從以下版本開始:
1.5
另請參見:
setLocationByPlatform(boolean), isShowing()

setBounds

public void setBounds(int x,
                      int y,
                      int width,
                      int height)
移動元件並調整其大小。由 xy 指定左上角的新位置,由 widthheight 指定新的大小。

如果 width 值或 height 值小於之前調用 setMinimumSize 指定的最小大小,則它的值將自動增加。

覆寫:
類別 Component 中的 setBounds
參數:
x - 元件的新 x 坐標
y - 元件的新 y 坐標
width - 元件的新 width
height - 元件的新 height
從以下版本開始:
1.6
另請參見:
Component.getBounds(), Component.setLocation(int, int), Component.setLocation(Point), setSize(int, int), setSize(Dimension), setMinimumSize(java.awt.Dimension), setLocationByPlatform(boolean), isLocationByPlatform()

setBounds

public void setBounds(Rectangle r)
移動元件並調整其大小,使其符合新的有界矩形 r。由 r.xr.y 指定元件的新位置,由 r.widthr.height 指定元件的新大小

如果 r.width 值或 r.height 值小於之前調用 setMinimumSize 指定的最小大小,則它的值將自動增加。

覆寫:
類別 Component 中的 setBounds
參數:
r - 此元件的新的有界矩形
從以下版本開始:
1.6
另請參見:
Component.getBounds(), Component.setLocation(int, int), Component.setLocation(Point), setSize(int, int), setSize(Dimension), setMinimumSize(java.awt.Dimension), setLocationByPlatform(boolean), isLocationByPlatform()

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

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