所有类


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 的实际几何结构,直到处理完最后一个请求。在处理后续的请求的过程中,窗口管理系统满足该请求时,这些值可能会相应地改变。

窗口能够生成以下 WindowEvents:WindowOpened、WindowClosed、indowGainedFocus、indowLostFocus。

从以下版本开始:
JDK1.0
另请参见:
WindowEvent, addWindowListener(java.awt.event.WindowListener), BorderLayout, 序列化表格

嵌套类摘要
protected  classWindow.AccessibleAWTWindow
          此类实现对 Window 类的可访问性支持。
 
从类 java.awt.Container 继承的嵌套类/接口
Container.AccessibleAWTContainer
 
从类 java.awt.Component 继承的嵌套类/接口
Component.AccessibleAWTComponent, 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)
          使用指定窗口的作为其所有者和屏幕设备的一个 GraphicsConfiguration,构造一个新的不可见窗口 。
 
方法摘要
 voidaddNotify()
          通过创建到其本机屏幕资源的连接,使此窗口变得可显示。
 voidaddPropertyChangeListener(PropertyChangeListener listener)
          将 PropertyChangeListener 添加到侦听器列表。
 voidaddPropertyChangeListener(String propertyName, PropertyChangeListener listener)
          将 PropertyChangeListener 添加到某个特定属性的侦听器列表。
 voidaddWindowFocusListener(WindowFocusListener l)
          添加指定的窗口焦点侦听器,以从此窗口接收窗口事件。
 voidaddWindowListener(WindowListener l)
          添加指定的窗口侦听器,以从此窗口接收窗口事件。
 voidaddWindowStateListener(WindowStateListener l)
          添加指定的窗口状态侦听器,以从此窗口接收窗口事件。
 voidapplyResourceBundle(ResourceBundle rb)
          已过时。 从 J2SE 1.4 开始,由 Component.applyComponentOrientation 取代。
 voidapplyResourceBundle(String rbName)
          已过时。 从 J2SE 1.4 开始,由 Component.applyComponentOrientation 取代。
 voidcreateBufferStrategy(int numBuffers)
          为此组件上的多缓冲创建一个新策略。
 voidcreateBufferStrategy(int numBuffers, BufferCapabilities caps)
          根据所需缓冲功能为此组件上的多缓冲创建新策略。
 voiddispose()
          释放由此 Window、其子组件及其拥有的所有子组件所使用的所有本机屏幕资源。
protected  voidfinalize()
          释放输入方法和上下文,并从 GUI 层次结构中移除此 Window。
 AccessibleContextgetAccessibleContext()
          获取与此窗口关联的 AccessibleContext。
 BufferStrategygetBufferStrategy()
           
 booleangetFocusableWindowState()
          返回如果此窗口满足 isFocusableWindow 中列出的其他要求,其是否可以成为焦点窗口。
 ContainergetFocusCycleRootAncestor()
          始终返回 null,原因是窗口没有祖先;它们表示组件层次结构的顶层。
 ComponentgetFocusOwner()
          如果此窗口为焦点窗口,则返回其具有焦点窗口的子组件;否则返回 null。
 Set<AWTKeyStroke>getFocusTraversalKeys(int id)
          获取此窗口的焦点遍历键。
 GraphicsConfigurationgetGraphicsConfiguration()
          此方法返回由此窗口使用的 GraphicsConfiguration。
 InputContextgetInputContext()
          获取此窗口的输入上下文。
<T extends EventListener>
T[]
getListeners(Class<T> listenerType)
          返回当前在此 Window 上注册为 FooListener 的所有对象的数组。
 LocalegetLocale()
          如果设置了区域,则获取与此窗口关联的 Locale 对象。
 ComponentgetMostRecentFocusOwner()
          返回此窗口的子组件,该子组件在此窗口为焦点窗口时将接收焦点。
 Window[]getOwnedWindows()
          返回包含此窗口当前拥有的所有窗口的数组。
 WindowgetOwner()
          返回此窗口的所有者。
 ToolkitgetToolkit()
          返回此框架的工具包。
 StringgetWarningString()
          获取此窗口中显示的警告字符串。
 WindowFocusListener[]getWindowFocusListeners()
          返回在此窗口注册的所有窗口焦点侦听器的数组。
 WindowListener[]getWindowListeners()
          返回在此窗口注册的所有窗口侦听器的数组。
 WindowStateListener[]getWindowStateListeners()
          返回在此窗口注册的所有窗口状态侦听器的数组。
 voidhide()
          已过时。 从 JDK 5 开始,由 Component.setVisible(boolean) 取代。
 booleanisActive()
          返回此窗口是否为活动窗口。
 booleanisAlwaysOnTop()
          返回此窗口是否为 always-on-top 窗口。
 booleanisFocusableWindow()
          返回此窗口是否可以成为焦点窗口,也就是说,此窗口或其任何子组件是否可以成为焦点所有者。
 booleanisFocusCycleRoot()
          始终返回 true,原因是所有窗口必须为焦点遍历循环的根。
 booleanisFocused()
          返回此窗口是否为焦点窗口。
 booleanisLocationByPlatform()
          如果在此窗口下次可见时,显示在本机窗口操作系统的默认位置,则返回 true
 booleanisShowing()
          检查此窗口是否显示在屏幕上。
 voidpack()
          调整此窗口的大小,以适合其子组件的首选大小和布局。
 booleanpostEvent(Event e)
          已过时。 从 JDK version 1.1 开始,由 dispatchEvent(AWTEvent) 取代。
protected  voidprocessEvent(AWTEvent e)
          处理此窗口上的事件。
protected  voidprocessWindowEvent(WindowEvent e)
          处理此窗口上发生的窗口事件,方法是将它们调度到任何注册的 WindowListener 对象。
protected  voidprocessWindowFocusEvent(WindowEvent e)
          处理此窗口上发生的窗口焦点事件,方法是将它们调度到任何注册的 WindowFocusListener 对象。
protected  voidprocessWindowStateEvent(WindowEvent e)
          处理此窗口上发生的窗口状态事件,方法是将它们调度到任何注册的 WindowStateListener 对象。
 voidremoveWindowFocusListener(WindowFocusListener l)
          移除指定的窗口焦点侦听器,以便不再从此窗口接收窗口事件。
 voidremoveWindowListener(WindowListener l)
          移除指定的窗口侦听器,以便不再从此窗口接收窗口事件。
 voidremoveWindowStateListener(WindowStateListener l)
          移除指定的窗口状态侦听器,以便不再从此窗口接收窗口事件。
 voidsetAlwaysOnTop(boolean alwaysOnTop)
          更改始终位于顶层的窗口状态。
 voidsetBounds(int x, int y, int width, int height)
          重绘组件的指定矩形区域。
 voidsetCursor(Cursor cursor)
          设置指定光标的光标图像。
 voidsetFocusableWindowState(boolean focusableWindowState)
          设置如果此窗口满足 isFocusableWindow 中列出的其他要求,其是否可以成为焦点窗口。
 voidsetFocusCycleRoot(boolean focusCycleRoot)
          不执行任何操作,原因是窗口必须始终为焦点遍历循环的根。
 voidsetLocationByPlatform(boolean locationByPlatform)
          设置在下次窗口可见时,此窗口是应显示在本机窗口系统的默认位置,还是应显示在当前位置(由 getLocation 返回)。
 voidsetLocationRelativeTo(Component c)
          设置此窗口相对于指定组件的位置。
 voidshow()
          已过时。 从 JDK 5 开始,由 Component.setVisible(boolean) 取代。
 voidtoBack()
          如果此窗口是可视的,则将此窗口发送到后台,如果它是焦点窗口或活动窗口,则会导致丢失焦点或激活状态。
 voidtoFront()
          如果此窗口是可见的,则将此窗口置于前端,并可以将其设为焦点窗口。
 
从类 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, removeNotify, 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, 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, reshape, resize, resize, setBackground, setBounds, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setMinimumSize, setName, setPreferredSize, setSize, setSize, setVisible, show, size, toString, transferFocus, transferFocusUpCycle
 
从类 java.lang.Object 继承的方法
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

构造方法详细信息

Window

public Window(Frame owner)
使用指定的 Frame 作为其所有者,构造一个新的不可见窗口。该窗口将不是可聚焦的,除非其所有者正显示在屏幕上。

如果有安全管理程序,那么此方法首先调用安全管理程序的 checkTopLevelWindow 方法(this 作为其参数),以确定是否必须使用警告横幅显示该窗口。

参数:
owner - 要充当所有者的 Frame
抛出:
IllegalArgumentException - 如果 ownerGraphicsConfiguration 不是来自屏幕设备
IllegalArgumentException - 如果 ownernullGraphicsEnvironment.isHeadless 返回 true 时,将始终抛出该异常
另请参见:
GraphicsEnvironment.isHeadless(), SecurityManager.checkTopLevelWindow(java.lang.Object), isShowing()

Window

public Window(Window owner)
使用指定 Window 作为其所有者,构造一个新的不可见窗口。该 Window 将不是可聚焦的,除非其最近拥有的 Frame 和 Dialog 正在该屏幕上显示。

如果有安全管理程序,那么此方法首先调用安全管理程序的 checkTopLevelWindow 方法(this 作为其参数),以确定是否必须使用警告横幅显示该窗口。

参数:
owner - 要充当所有者的 Window
抛出:
IllegalArgumentException - 如果 ownerGraphicsConfiguration 不是来自屏幕设备
IllegalArgumentException - 如果 ownernull。GraphicsEnvironment.isHeadless() 返回 true 时,始终抛出此异常。
从以下版本开始:
1.2
另请参见:
GraphicsEnvironment.isHeadless(), SecurityManager.checkTopLevelWindow(java.lang.Object), isShowing()

Window

public Window(Window owner,
              GraphicsConfiguration gc)
使用指定窗口的作为其所有者和屏幕设备的一个 GraphicsConfiguration,构造一个新的不可见窗口 。该 Window 将不是可聚焦的,除非其最近拥有的 Frame 和 Dialog 正在该屏幕上显示。

如果有安全管理程序,那么此方法首先调用安全管理程序的 checkTopLevelWindow 方法(this 作为其参数),以确定是否必须使用警告横幅显示该窗口。

参数:
owner - 要充当所有者的窗口
gc - 目标屏幕设备的 GraphicsConfiguration;如果 gcnull,则使用系统默认的 GraphicsConfiguration
抛出:
IllegalArgumentException - 如果 ownernull
IllegalArgumentException - 如果 gc 不是来自屏幕设备;GraphicsEnvironment.isHeadless 返回 true 时,将始终抛出此异常
从以下版本开始:
1.3
另请参见:
GraphicsEnvironment.isHeadless(), SecurityManager.checkTopLevelWindow(java.lang.Object), GraphicsConfiguration.getBounds(), isShowing()
方法详细信息

finalize

protected void finalize()
                 throws Throwable
释放输入方法和上下文,并从 GUI 层次结构中移除此 Window。重写此方法的子类应调用 super.finalize()。

覆盖:
Object 中的 finalize
抛出:
Throwable - 此方法抛出的 Exception

addNotify

public void addNotify()
通过创建到其本机屏幕资源的连接,使此窗口变得可显示。此方法由工具包在内部进行调用,并且不应由程序直接调用。

覆盖:
Container 中的 addNotify
从以下版本开始:
JDK1.0
另请参见:
Component.isDisplayable(), Container.removeNotify()

pack

public void pack()
调整此窗口的大小,以适合其子组件的首选大小和布局。如果该窗口和/或其所有者仍不可显示,则两者在计算首选大小之前变得可显示。在计算首选大小之后,将会验证该 Window。

另请参见:
Component.isDisplayable()

show

@Deprecated
public void show()
已过时。 从 JDK 5 开始,由 Component.setVisible(boolean) 取代。

覆盖:
Component 中的 show

hide

@Deprecated
public void hide()
已过时。 从 JDK 5 开始,由 Component.setVisible(boolean) 取代。

覆盖:
Component 中的 hide