JavaTM 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。

将此窗口放在堆栈顺序的顶层,并在此虚拟机中显示在所有其他窗口的上面。如果此窗口不可见,则不会发生任何操作。有些平台不允许拥有其他窗口的窗口显示在它所拥有的窗口之上。有些平台可能不允许此虚拟机将其窗口放在本机应用程序窗口或其他虚拟机窗口之上。此权限可能取决于此虚拟机中的窗口是否已被设为焦点窗口。将进行所有尝试来移动此窗口,使其位于堆栈顺序中尽可能靠前的位置;但是,开发人员不应假定此方法在所有情况下都可以将此窗口移到所有其他窗口之上。

由于本机窗口系统多种多样,因此无法保证对焦点窗口和活动窗口的更改能够实现。在此窗口接收 WINDOW_GAINED_FOCUS 或 WINDOW_ACTIVATED 事件之前,开发人员不得假定此窗口是焦点窗口或活动窗口。在顶层窗口是焦点窗口的平台上,此方法可能使此窗口成为焦点窗口(如果它还不是焦点窗口)。在堆栈顺序通常不影响焦点窗口的平台上,此方法可能维持焦点窗口和活动窗口不变。

如果此方法导致此窗口成为焦点窗口,而且此窗口是一个 Frame 或 Dialog,则它也将被激活。如果此窗口是焦点窗口,但它不是一个 Frame 或 Dialog,则拥有此窗口的第一个 Frame 或 Dialog 将被激活。

如果此窗口被模式对话框 (modal dialog) 阻塞,则阻塞对话框将置于最前端,仍然处于被阻塞窗口的前方。

另请参见:
toBack()

toBack

public void toBack()
如果此窗口是可视的,则将此窗口置于后方,如果它是焦点窗口或活动窗口,则会导致丢失焦点或活动状态。

在此虚拟机中,将此窗口放在堆栈顺序的底部,并在其他所有窗口之后显示此窗口。如果此窗口不可见,则不发生任何操作。有些平台不允许其他窗口拥有的窗口出现在其所有者下方。将进行所有尝试来移动此窗口,使其位于堆栈顺序中尽可能靠后的位置;不过,开发人员不应假定此方法在所有情况下都可以将此窗口移到所有其他窗口之下。

由于本机窗口系统多种多样,因此无法保证对焦点窗口和活动窗口的更改能够实现。在此窗口接收 WINDOW_LOST_FOCUS 或 WINDOW_DEACTIVATED 事件之前,开发人员不得假定此窗口不再是焦点窗口或活动窗口。在顶层窗口为焦点窗口的平台上,此方法可能导致此窗口不再是焦点状态。在此情况下,此虚拟机中紧跟其后的可作为焦点的窗口将成为焦点窗口。在堆栈顺序通常不影响焦点窗口的平台上,此方法可能维持焦点窗口和活动窗口不变。

另请参见:
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 Platform
Standard Ed. 6

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策