- 所有已实现的接口:
ImageObserver,MenuContainer,Serializable,Accessible
- 已知子类:
BasicToolBarUI.DragWindow,Dialog,Frame,JWindow
Window 对象是没有边框和菜单栏的顶级窗口。窗口的默认布局是 BorderLayout 。
一个窗口在构造时必须有一个框架、对话框或另一个定义为它的所有者的窗口。
在多屏环境中,您可以通过构造Window和Window(Window, GraphicsConfiguration) 来在不同的屏幕设备上创建Window。 GraphicsConfiguration 对象是目标屏幕设备的 GraphicsConfiguration 对象之一。
在桌面区域可以跨越多个物理屏幕设备的虚拟设备多屏环境中,所有配置的边界都是相对于虚拟设备坐标系的。虚拟坐标系的原点位于主物理屏幕的左上角。根据主屏幕在虚拟设备中的位置,负坐标是可能的,如下图所示。

在这样的环境下,调用setLocation时,必须向该方法传递一个虚拟坐标。同样,在 Window 上调用 getLocationOnScreen 会返回虚拟设备坐标。调用GraphicsConfiguration的getBounds方法在虚拟坐标系中找到它的原点。
以下代码将 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);
注意:顶层窗口(包括Windows、Frames和Dialogs)的位置和大小由桌面的窗口管理系统控制。对 setLocation 、 setSize 和 setBounds 的调用是转发到窗口管理系统的请求(不是指令)。将尽一切努力满足此类要求。但是,在某些情况下,窗口管理系统可能会忽略此类请求,或修改请求的几何图形,以便以更接近桌面设置的方式放置和调整 Window 的大小。
桌面窗口管理系统可以将光晕、阴影、运动效果和动画等视觉效果应用于窗口。这些在 AWT 的知识和控制之外,因此出于本规范的目的,它们不被视为顶级窗口的一部分。
由于本机事件处理的异步性质,在处理最后一个请求之前,getBounds、getLocation、getLocationOnScreen 和 getSize 返回的结果可能不会反映屏幕上窗口的实际几何形状。在后续请求的处理过程中,这些值可能会在窗口管理系统完成请求时相应地发生变化。
应用程序可以任意设置不可见 Window 的大小和位置,但是当 Window 可见时,窗口管理系统可能随后更改其大小和/或位置。将生成一个或多个 ComponentEvent 以指示新的几何图形。
Windows 能够生成以下 WindowEvent:WindowOpened、WindowClosed、WindowGainedFocus、WindowLostFocus。
- 自从:
- 1.0
- 参见:
-
内部类总结
内部类修饰符和类型类描述protected class此类实现了对Window类的辅助功能支持。static enum可用枚举窗口类型.在类 java.awt.Container 中声明的嵌套类/接口
Container.AccessibleAWTContainer -
字段摘要
在类 java.awt.Component 中声明的字段
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT在接口 java.awt.image.ImageObserver 中声明的字段
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH -
构造方法总结
构造方法 -
方法总结
修饰符和类型方法描述void通过创建与其本机屏幕资源的连接,使此窗口可显示。void将 PropertyChangeListener 添加到监听列表。voidaddPropertyChangeListener(String propertyName, PropertyChangeListener listener) 将 PropertyChangeListener 添加到特定属性的监听列表。void添加指定的窗口焦点监听以接收来自该窗口的窗口事件。void添加指定的窗口监听以从该窗口接收窗口事件。void添加指定的窗口状态监听以接收来自该窗口的窗口事件。voidapplyResourceBundle(String rbName) 已弃用。void已弃用。从 J2SE 1.4 开始,由Component.applyComponentOrientation取代。voidcreateBufferStrategy(int numBuffers) 为该组件创建一个新的多缓冲策略。voidcreateBufferStrategy(int numBuffers, BufferCapabilities caps) 为具有所需缓冲功能的组件创建新的多缓冲策略。voiddispose()释放此Window、其子组件及其所有子组件使用的所有本机屏幕资源。获取与此 Window 关联的 AccessibleContext。获取此窗口的背景颜色。返回此组件使用的BufferStrategy。boolean如果满足isFocusableWindow中列出的其他要求,则返回此 Window 是否可以成为焦点窗口。final Container总是返回null因为 Windows 没有祖先;它们代表组件层次结构的顶部。如果此 Window 获得焦点,则返回此 Window 的具有焦点的子 Component;否则返回 null。getFocusTraversalKeys(int id) 获取此 Window 的焦点遍历键。返回要显示为该窗口图标的图像序列。获取此窗口的输入上下文。<T extends EventListener>
T[]getListeners(Class<T> listenerType) 返回当前在此Window上注册为FooListener的所有对象的数组。如果已设置区域设置,则获取与此窗口关联的Locale对象。返回此窗口的模态排除类型。返回此 Window 的子组件,当此 Window 获得焦点时,它将接收焦点。float返回窗口的不透明度。Window[]返回包含此窗口当前拥有的所有窗口的数组。getOwner()返回此窗口的所有者。static Window[]返回此应用程序创建的没有所有者的所有Window的数组。getShape()返回窗口的形状。返回此框架的工具包。getType()返回窗口的类型。final String获取随此窗口显示的警告字符串。返回在此窗口上注册的所有窗口焦点监听的数组。返回在此窗口上注册的所有窗口监听的数组。static Window[]返回此应用程序创建的所有Window的数组,包括拥有的和无主的。返回在此窗口上注册的所有窗口状态监听的数组。voidhide()已弃用。从 JDK 1.5 版开始,由setVisible(boolean)取代。booleanisActive()返回此窗口是否处于活动状态。final boolean返回此窗口是否为始终在最前面的窗口。boolean返回此窗口是否支持永远在线模式。boolean返回此窗口是否应在随后显示(通过调用setVisible(true))或移动到前面(通过调用toFront())获得焦点。final boolean返回此 Window 是否可以成为焦点窗口,即此 Window 或其任何子组件是否可以成为焦点所有者。final boolean始终返回true,因为所有窗口都必须是焦点遍历循环的根。boolean返回此 Window 是否获得焦点。boolean如果下次此窗口可见时此窗口将出现在本机窗口系统的默认位置,则返回true。booleanisOpaque()指示窗口当前是否不透明。boolean检查此窗口是否显示在屏幕上。boolean指示此容器是否为验证根。voidpack()使此 Window 的大小适合其子组件的首选大小和布局。void绘制容器。boolean已弃用。从 JDK 1.1 版开始,由dispatchEvent(AWTEvent)取代。protected void处理此窗口上的事件。protected void通过将事件调度到任何已注册的 WindowListener 对象来处理在此窗口上发生的窗口事件。protected void通过将发生在该窗口上的窗口焦点事件分派给任何已注册的 WindowFocusListener 对象来处理它们。protected void通过将发生在该窗口上的窗口状态事件分派给任何已注册的WindowStateListener对象来处理它们。void删除指定的窗口焦点监听,以便它不再接收来自该窗口的窗口事件。void删除指定的窗口监听,以便它不再接收来自该窗口的窗口事件。void删除指定的窗口状态监听,以便它不再接收来自该窗口的窗口事件。voidreshape(int x, int y, int width, int height) 已弃用。从 JDK 1.1 版开始,由setBounds(int, int, int, int)取代。final voidsetAlwaysOnTop(boolean alwaysOnTop) 设置此窗口是否应始终位于其他窗口之上。voidsetAutoRequestFocus(boolean autoRequestFocus) 设置此窗口是否应在随后显示(通过调用setVisible(true))或移动到前面(通过调用toFront())获得焦点。voidsetBackground(Color bgColor) 设置此窗口的背景颜色。voidsetBounds(int x, int y, int width, int height) 移动此组件并调整其大小。void移动此组件并调整其大小以符合新的边界矩形r。void将光标图像设置为指定的光标。voidsetFocusableWindowState(boolean focusableWindowState) 设置如果此 Window 满足isFocusableWindow中概述的其他要求,它是否可以成为焦点窗口。final voidsetFocusCycleRoot(boolean focusCycleRoot) 什么也不做,因为 Windows 必须始终是焦点遍历循环的根。voidsetIconImage(Image image) 设置要显示为该窗口图标的图像。voidsetIconImages(List<? extends Image> icons) 设置要显示为该窗口图标的图像序列。voidsetLocation(int x, int y) 将此组件移动到新位置。voidsetLocation(Point p) 将此组件移动到新位置。voidsetLocationByPlatform(boolean locationByPlatform) 设置此 Window 是否应出现在本机窗口系统的默认位置或当前位置(由getLocation返回),下次 Window 可见时。void根据以下场景设置窗口相对于指定组件的位置。voidsetMinimumSize(Dimension minimumSize) 将此窗口的最小大小设置为常量值。voidsetModalExclusionType(Dialog.ModalExclusionType exclusionType) 指定此窗口的模态排除类型。voidsetOpacity(float opacity) 设置窗口的不透明度。void设置窗口的形状。voidsetSize(int width, int height) 调整此组件的大小,使其具有宽度width和高度height。void调整此组件的大小,使其具有宽度d.width和高度d.height。voidsetType(Window.Type type) 设置窗口的类型。voidsetVisible(boolean b) 根据参数b的值显示或隐藏此Window。voidshow()已弃用。从 JDK 1.5 版开始,由setVisible(boolean)取代。voidtoBack()如果此窗口可见,则将此窗口发送到后面,如果它是焦点或活动窗口,则可能会导致它失去焦点或激活。voidtoFront()如果此 Window 可见,则将此 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, paintComponents, paramString, preferredSize, print, printComponents, processContainerEvent, remove, remove, removeAll, removeContainerListener, removeNotify, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, setLayout, 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, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphics, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, 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, 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, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, requestFocusInWindow, resize, resize, revalidate, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setMaximumSize, setMixingCutoutShape, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
构造方法详细信息
-
Window
以指定的Frame作为其所有者构造一个新的、最初不可见的窗口。除非窗口的所有者显示在屏幕上,否则该窗口将无法获得焦点。如果设置了安全管理器,则会调用它来检查
AWTPermission("showWindowWithoutWarningBanner")。如果该检查失败并显示SecurityException,则会创建一个警告横幅。- 参数:
owner- 充当所有者的Frame或null如果此窗口没有所有者- 抛出:
IllegalArgumentException- 如果owner的GraphicsConfiguration不是来自屏幕设备HeadlessException- 当GraphicsEnvironment.isHeadless返回true- 参见:
-
Window
以指定的Window作为其所有者构造一个新的、最初不可见的窗口。此窗口将不可聚焦,除非它最近的所有者Frame或Dialog显示在屏幕上。如果设置了安全管理器,则会调用它来检查
AWTPermission("showWindowWithoutWarningBanner")。如果该检查失败并显示SecurityException,则会创建一个警告横幅。- 参数:
owner- 充当所有者的Window或null如果此窗口没有所有者- 抛出:
IllegalArgumentException- 如果owner的GraphicsConfiguration不是来自屏幕设备HeadlessException- 当GraphicsEnvironment.isHeadless()返回true- 自从:
- 1.2
- 参见:
-
Window
使用屏幕设备的指定所有者Window和GraphicsConfiguration构造一个新的、最初不可见的窗口。除非在屏幕上显示最近拥有的Frame或Dialog,否则该窗口将不可聚焦。如果设置了安全管理器,则会调用它来检查
AWTPermission("showWindowWithoutWarningBanner")。如果该检查失败并显示SecurityException,则会创建一个警告横幅。- 参数:
owner- 充当所有者的窗口或null(如果此窗口没有所有者)gc- 目标屏幕设备的GraphicsConfiguration;如果gc是null,则假定系统默认值GraphicsConfiguration- 抛出:
IllegalArgumentException- 如果gc不是来自屏幕设备HeadlessException- 当GraphicsEnvironment.isHeadless()返回true- 自从:
- 1.3
- 参见:
-
-
方法详情
-
getIconImages
返回要显示为该窗口图标的图像序列。此方法返回内部存储列表的副本,因此对返回对象的所有操作都不会影响窗口的行为。
- 返回:
- 此窗口的图标图像列表的副本,如果此窗口没有图标图像,则为空列表。
- 自从:
- 1.6
- 参见:
-
setIconImages
设置要显示为该窗口图标的图像序列。对getIconImages的后续调用将始终返回icons列表的副本。根据平台功能,一个或多个不同尺寸的图像将用作窗口的图标。
icons列表还可以包含MultiResolutionImage图像。根据屏幕分辨率,从基本MultiResolutionImage图像中提取合适的图像并添加到图标列表中,同时从列表中删除基本分辨率图像。icons列表从一开始就扫描最合适尺寸的图像。如果列表包含多个相同大小的图像,将使用第一个。没有指定图标的无主窗口使用平台默认图标。拥有窗口的图标可以从所有者继承,除非明确覆盖。将图标设置为
null或空列表可恢复默认行为。注意:本机窗口系统可能会使用不同尺寸的不同图像来表示窗口,这取决于上下文(例如窗口装饰、窗口列表、任务栏等)。他们还可以针对所有上下文只使用一个图像,或者根本不使用图像。
- 参数:
icons- 要显示的图标图像列表。- 自从:
- 1.6
- 参见:
-
setIconImage
设置要显示为该窗口图标的图像。可以使用此方法代替
setIconImages()将单个图像指定为窗口的图标。以下声明:
setIconImage(image);
等同于:ArrayList<Image> imageList = new ArrayList<Image>(); imageList.add(image); setIconImages(imageList);
注意:本机窗口系统可能会使用不同尺寸的不同图像来表示窗口,这取决于上下文(例如窗口装饰、窗口列表、任务栏等)。他们还可以针对所有上下文只使用一个图像,或者根本不使用图像。
- 参数:
image- 要显示的图标图像。- 自从:
- 1.6
- 参见:
-
addNotify
public void addNotify()通过创建与其本机屏幕资源的连接,使此窗口可显示。此方法由工具包内部调用,不应由程序直接调用。 -
pack
public void pack()使此 Window 的大小适合其子组件的首选大小和布局。如果任一尺寸小于先前调用setMinimumSize方法指定的最小尺寸,则窗口的最终宽度和高度将自动放大。如果窗口和/或其所有者还不可显示,则在计算首选大小之前将它们都设置为可显示。窗口在计算其大小后进行验证。
- 参见:
-
setMinimumSize
将此窗口的最小大小设置为常量值。对getMinimumSize的后续调用将始终返回此值。如果当前窗口的大小小于minimumSize窗口的大小会自动放大以符合最小大小。如果之后调用
setSize或setBounds方法且宽度或高度小于setMinimumSize方法指定的宽度或高度,则窗口会自动放大以满足minimumSize值。minimumSize值也会影响pack方法的行为。通过将最小大小参数设置为
null值来恢复默认行为。如果用户尝试将窗口大小调整为低于
minimumSize值,则调整大小操作可能会受到限制。此行为取决于平台。- 重写:
setMinimumSize在类Component中- 参数:
minimumSize- 此窗口的新最小尺寸- 自从:
- 1.6
- 参见:
-
setSize
调整此组件的大小,使其具有宽度d.width和高度d.height。此方法更改与布局相关的信息,因此使组件层次结构无效。
如果
d.width和d.height值中的任何一个小于之前调用setMinimumSize指定的最小大小,则会自动放大。该方法更改几何相关数据。因此,本机窗口系统可能会忽略此类请求,或者它可能会修改请求的数据,以便
Window对象的放置和大小与桌面设置密切相关。 -
setSize
public void setSize(int width, int height) 调整此组件的大小,使其具有宽度width和高度height。此方法更改与布局相关的信息,因此使组件层次结构无效。
如果
width和height值中的任何一个小于之前调用setMinimumSize指定的最小大小,则会自动放大。该方法更改几何相关数据。因此,本机窗口系统可能会忽略此类请求,或者它可能会修改请求的数据,以便
Window对象的放置和大小与桌面设置密切相关。 -
setLocation
public void setLocation(int x, int y) 将此组件移动到新位置。新位置的左上角由该组件父级坐标空间中的x和y参数指定。此方法更改与布局相关的信息,因此使组件层次结构无效。
该方法更改几何相关数据。因此,本机窗口系统可能会忽略此类请求,或者它可能会修改请求的数据,以便
Window对象的放置和大小与桌面设置密切相关。- 重写:
setLocation在类Component中- 参数:
x- 的x-父坐标空间中新位置左上角的坐标y- 的y-父坐标空间中新位置左上角的坐标- 参见:
-
setLocation
将此组件移动到新位置。新位置的左上角由点p指定。点p在父坐标空间中给出。此方法更改与布局相关的信息,因此使组件层次结构无效。
该方法更改几何相关数据。因此,本机窗口系统可能会忽略此类请求,或者它可能会修改请求的数据,以便
Window对象的放置和大小与桌面设置密切相关。- 重写:
setLocation在类Component中- 参数:
p- 定义新位置左上角的点,在该组件父级的坐标空间中给出- 参见:
-
reshape
已弃用。从 JDK 1.1 版开始,由setBounds(int, int, int, int)取代。从类复制的描述:Component重塑此组件的边界矩形。 -
setVisible
public void setVisible(boolean b) 根据参数b的值显示或隐藏此Window。如果该方法显示窗口,则该窗口也会在以下条件下获得焦点:
Window满足isFocusableWindow()方法中概述的要求。Window的autoRequestFocus属性具有true值。- 本机窗口系统允许
Window获得焦点。
autoRequestFocus属性的值)存在异常。如果窗口是模态对话框,则不会考虑该属性,它会阻止当前获得焦点的窗口。在接收到 WINDOW_GAINED_FOCUS 或 WINDOW_ACTIVATED 事件之前,开发人员绝不能假定该窗口是焦点窗口或活动窗口。
- 重写:
setVisible在类Component中- 参数:
b- 如果是true,则使Window可见,否则隐藏Window。如果Window和/或其所有者尚不可显示,则两者都可显示。Window将在可见之前进行验证。如果Window已经可见,这会将Window带到前面。如果是
false,则隐藏此Window、其子组件及其所有子组件。Window及其子组件可以通过调用#setVisible(true)再次可见。- 参见:
-
show
已弃用。从 JDK 1.5 版开始,由setVisible(boolean)取代。使窗口可见。如果 Window 和/或其所有者尚不可显示,则两者都可显示。窗口将在可见之前进行验证。如果 Window 已经可见,这会将 Window 置于最前面。 -
hide
已弃用。从 JDK 1.5 版开始,由setVisible(boolean)取代。隐藏此 Window、它的子组件以及它拥有的所有子组件。通过调用show可以使 Window 及其子组件再次可见。 -
dispose
public void dispose()释放此Window、其子组件及其所有子组件使用的所有本机屏幕资源。也就是说,这些Component的资源将被销毁,它们消耗的任何内存都将返回给操作系统,并且它们将被标记为不可显示。通过随后调用
pack或show重建本机资源,可以使Window及其子组件再次显示。重新创建的Window及其子组件的状态将与处理Window时这些对象的状态相同(不考虑这些操作之间的额外修改)。笔记:当 Java 虚拟机 (VM) 中的最后一个可显示窗口被处理掉时,VM 可能会终止。有关详细信息,请参阅 AWT 线程问题。
- 参见:
-
toFront
public void toFront()如果此 Window 可见,则将此 Window 置于最前面,并可能使其成为焦点窗口。在此 VM 中任何其他窗口的前面。如果此窗口不可见,则不会执行任何操作。某些平台不允许拥有其他 Windows 的 Windows 出现在那些拥有的 Windows 之上。某些平台可能不允许此 VM 将其 Windows 放置在本机应用程序的窗口或其他 VM 的窗口之上。此权限可能取决于此 VM 中的窗口是否已获得焦点。将尽一切努力将此 Window 移动到堆叠顺序中尽可能高的位置;但是,开发人员不应假设此方法在任何情况下都会将此窗口移至所有其他窗口之上。
在该窗口收到 WINDOW_GAINED_FOCUS 或 WINDOW_ACTIVATED 事件之前,开发人员绝不能假定该窗口是获得焦点或活动的窗口。在最顶层窗口是焦点窗口的平台上,此方法将大概在以下条件下聚焦此窗口(如果它尚未聚焦):
- 该窗口满足
isFocusableWindow()方法中概述的要求。 - 窗口的属性
autoRequestFocus的值为true。 - 本机窗口系统允许窗口获得焦点。
如果此方法使此窗口获得焦点,并且此窗口是框架或对话框,它也会被激活。如果此窗口获得焦点,但它不是框架或对话框,则作为此窗口所有者的第一个框架或对话框将被激活。
如果此窗口被模态对话框阻塞,则阻塞对话框将被带到前面并保持在被阻塞窗口的上方。
- 参见:
- 该窗口满足
-
toBack
public void toBack()如果此窗口可见,则将此窗口发送到后面,如果它是焦点或活动窗口,则可能会导致它失去焦点或激活。将此窗口置于堆叠顺序的底部,并显示在该 VM 中任何其他窗口的后面。如果此窗口不可见,则不会执行任何操作。某些平台不允许其他 Windows 拥有的 Windows 显示在其所有者下方。将尽一切努力将此窗口移到堆叠顺序中尽可能低的位置;但是,开发人员不应假设此方法在任何情况下都会将此窗口移动到所有其他窗口下方。
由于本机窗口系统的变化,无法保证对焦点和活动窗口的更改。在该窗口收到 WINDOW_LOST_FOCUS 或 WINDOW_DEACTIVATED 事件之前,开发人员绝不能假设该窗口不再是焦点窗口或活动窗口。在最顶层窗口是焦点窗口的平台上,此方法将大概导致此窗口失去焦点。在这种情况下,此 VM 中下一个最高的可聚焦窗口将获得焦点。在堆叠顺序通常不会影响焦点窗口的平台上,此方法将大概保持焦点和活动窗口不变。
- 参见:
-
getToolkit
返回此框架的工具包。- 重写:
getToolkit在类Component中- 返回:
- 此窗口的工具包。
- 参见:
-
getWarningString
获取随此窗口显示的警告字符串。如果此窗口不安全,则警告字符串会显示在窗口可见区域的某处。如果存在安全管理器并且安全管理器拒绝AWTPermission("showWindowWithoutWarningBanner"),则窗口是不安全的。如果窗口是安全的,则
getWarningString返回null。如果窗口不安全,此方法将检查系统属性awt.appletWarning并返回该属性的字符串值。- 返回:
- 此窗口的警告字符串。
-
getLocale
如果已设置区域设置,则获取与此窗口关联的Locale对象。如果未设置locale,则返回默认locale。 -
getInputContext
获取此窗口的输入上下文。一个窗口总是有一个输入上下文,它由子组件共享,除非它们创建和设置自己的。- 重写:
getInputContext在类Component中- 返回:
-
该组件使用的输入上下文;
null如果无法确定上下文 - 自从:
- 1.2
- 参见:
-
setCursor
将光标图像设置为指定的光标。如果 Java 平台实现和/或本机系统不支持更改鼠标光标形状,则该方法可能没有视觉效果。
-
getOwner
返回此窗口的所有者。- 返回:
- 这个窗口的所有者
- 自从:
- 1.2
-
getOwnedWindows
返回包含此窗口当前拥有的所有窗口的数组。- 返回:
- 所有拥有的窗口的数组
- 自从:
- 1.2
-
getWindows
返回此应用程序创建的所有Window的数组,包括拥有的和无主的。如果从小程序调用,则该数组仅包含该小程序可访问的Window。警告:此方法可能会返回系统创建的窗口,例如打印对话框。应用程序不应假定这些对话框的存在,也不应假定有关这些对话框的任何信息,例如组件位置、
LayoutManagers 或序列化。- 返回:
-
应用程序创建的所有
Window的数组 - 自从:
- 1.6
- 参见:
-
getOwnerlessWindows
返回此应用程序创建的没有所有者的所有Window的数组。它们包括Frames 和无主的Dialogs 和Windows。如果从小程序调用,则该数组仅包含该小程序可访问的Window。警告:此方法可能会返回系统创建的窗口,例如打印对话框。应用程序不应假定这些对话框的存在,也不应假定有关这些对话框的任何信息,例如组件位置、
LayoutManagers 或序列化。- 返回:
-
此应用程序创建的所有无主
Window的数组 - 自从:
- 1.6
- 参见:
-
setModalExclusionType
指定此窗口的模态排除类型。如果窗口是模态排除的,则它不会被某些模态对话框阻止。有关可能的模态排除类型,请参阅Dialog.ModalExclusionType。如果不支持给定类型,则使用
NO_EXCLUDE。注意:更改可见窗口的模态排除类型可能无效,直到它被隐藏然后再次显示。
- 参数:
exclusionType- 此窗口的模态排除类型;null值相当于NO_EXCLUDE- 抛出:
SecurityException- 如果调用线程无权将模态排除属性设置为具有给定exclusionType的窗口- 自从:
- 1.6
- 参见:
-
getModalExclusionType
返回此窗口的模态排除类型。- 返回:
- 此窗口的模态排除类型
- 自从:
- 1.6
- 参见:
-
addWindowListener
添加指定的窗口监听以从该窗口接收窗口事件。如果 l 为 null,则不会抛出异常并且不会执行任何操作。有关 AWT 线程模型的详细信息,请参阅 AWT 线程问题。
- 参数:
l- 窗口监听器- 参见:
-
addWindowStateListener
- 参数:
l- 窗口状态监听器- 自从:
- 1.4
- 参见:
-
addWindowFocusListener
添加指定的窗口焦点监听以接收来自该窗口的窗口事件。如果 l 为null,则不会抛出异常并且不会执行任何操作。有关 AWT 线程模型的详细信息,请参阅 AWT 线程问题。
- 参数:
l- 窗口焦点监听器- 自从:
- 1.4
- 参见:
-
removeWindowListener
删除指定的窗口监听,以便它不再接收来自该窗口的窗口事件。如果 l 为 null,则不会抛出异常并且不会执行任何操作。有关 AWT 线程模型的详细信息,请参阅 AWT 线程问题。
- 参数:
l- 窗口监听器- 参见:
-
removeWindowStateListener
- 参数:
l- 窗口状态监听器- 自从:
- 1.4
- 参见:
-
removeWindowFocusListener
删除指定的窗口焦点监听,以便它不再接收来自该窗口的窗口事件。如果 l 为 null,则不会抛出异常并且不会执行任何操作。有关 AWT 线程模型的详细信息,请参阅 AWT 线程问题。
- 参数:
l- 窗口焦点监听器- 自从:
- 1.4
- 参见:
-
getWindowListeners
返回在此窗口上注册的所有窗口监听的数组。- 返回:
-
此窗口的所有
WindowListeners 或空数组(如果当前没有注册窗口监听器) - 自从:
- 1.4
- 参见:
-
getWindowFocusListeners
返回在此窗口上注册的所有窗口焦点监听的数组。- 返回:
-
此窗口的所有
WindowFocusListeners 或空数组(如果当前没有注册窗口焦点监听器) - 自从:
- 1.4
- 参见:
-
getWindowStateListeners
返回在此窗口上注册的所有窗口状态监听的数组。- 返回:
-
此窗口的所有
WindowStateListeners 或空数组(如果当前没有注册窗口状态监听器) - 自从:
- 1.4
- 参见:
-
getListeners
返回当前在此Window上注册为FooListener的所有对象的数组。FooListener是使用addFooListener方法注册的。您可以使用类文字指定
listenerType参数,例如FooListener.class。例如,您可以使用以下代码查询Window w的窗口监听器:WindowListener[] wls = (WindowListener[])(w.getListeners(WindowListener.class));
如果不存在这样的监听器,则此方法返回一个空数组。- 重写:
getListeners在类Container中- 类型参数:
T- 监听器的类型- 参数:
listenerType- 请求的监听器类型;此参数应指定从java.util.EventListener派生的接口- 返回:
-
在此窗口中注册为
FooListener的所有对象的数组,如果没有添加此类监听器,则为空数组 - 抛出:
ClassCastException- 如果listenerType没有指定实现java.util.EventListener的类或接口NullPointerException- 如果listenerType是null- 自从:
- 1.3
- 参见:
-
processEvent
处理此窗口上的事件。如果事件是WindowEvent,它会调用processWindowEvent方法,否则它会调用其超类的processEvent。请注意,如果事件参数为
null,则行为未指定且可能导致异常。- 重写:
processEvent在类Container中- 参数:
e- 事件- 参见:
-
processWindowEvent
通过将事件调度到任何已注册的 WindowListener 对象来处理在此窗口上发生的窗口事件。注意:除非为此组件启用了窗口事件,否则不会调用此方法;当发生以下情况之一时,就会发生这种情况:- WindowListener 对象通过
addWindowListener注册 - 窗口事件通过
enableEvents启用
请注意,如果事件参数为
null,则行为未指定且可能导致异常。- 参数:
e- 窗口事件- 参见:
- WindowListener 对象通过
-
processWindowFocusEvent
通过将发生在该窗口上的窗口焦点事件分派给任何已注册的 WindowFocusListener 对象来处理它们。注意:除非为此窗口启用窗口焦点事件,否则不会调用此方法。当发生以下情况之一时,就会发生这种情况:- WindowFocusListener 通过
addWindowFocusListener注册 - 窗口焦点事件通过
enableEvents启用
请注意,如果事件参数为
null,则行为未指定且可能导致异常。- 参数:
e- 窗口焦点事件- 自从:
- 1.4
- 参见:
- WindowFocusListener 通过
-
processWindowStateEvent
通过将发生在该窗口上的窗口状态事件分派给任何已注册的WindowStateListener对象来处理它们。注意:除非为此窗口启用了窗口状态事件,否则不会调用此方法。当发生以下情况之一时,就会发生这种情况:WindowStateListener通过addWindowStateListener注册- 窗口状态事件通过
enableEvents启用
请注意,如果事件参数为
null,则行为未指定且可能导致异常。- 参数:
e- 窗口状态事件- 自从:
- 1.4
- 参见:
-
setAlwaysOnTop
设置此窗口是否应始终位于其他窗口之上。如果有多个始终在最前面的窗口,则它们的相对顺序是未指定的并且依赖于平台。如果某个其他窗口已经始终位于最前面,则这些窗口之间的相对顺序未指定(取决于平台)。除了可能另一个永远在线的窗口之外,任何窗口都不能位于永远在线窗口之上。
永远在最前面的窗口拥有的所有窗口都继承此状态并自动变为永远在最前面。如果一个窗口不再总是在最前面,它拥有的窗口将不再总是在最上面。当发送
toBack永远在线窗口时,其永远在线状态设置为false。当在值为
true的窗口上调用此方法时,该窗口可见并且平台支持此窗口始终在最前面,该窗口会立即向前移动,将其“粘贴”在最顶部的位置。如果窗口当前不可见,则此方法将始终在最前面的状态设置为true但不会使窗口向前移动。稍后显示窗口时,它将始终位于最前面。当在值为
false的窗口上调用此方法时,总是在顶部状态设置为正常。它还可能导致顶层窗口的 z 顺序发生未指定的、平台相关的更改,但其他始终位于顶层的窗口将保持在最顶层的位置。在具有正常状态的窗口上使用值false调用此方法没有任何效果。笔记:某些平台可能不支持始终在最前面的窗口。要检测当前平台是否支持始终在最前面的窗口,请使用
Toolkit.isAlwaysOnTopSupported()和isAlwaysOnTopSupported()。如果此窗口不支持始终在最前面的模式或此窗口的工具包不支持始终在最前面的窗口,则调用此方法无效。如果安装了 SecurityManager,则调用线程必须被授予 AWTPermission“setWindowAlwaysOnTop”才能设置此属性的值。如果未授予此权限,此方法将抛出 SecurityException,并且属性的当前值将保持不变。
- 参数:
alwaysOnTop- 如果窗口应始终位于其他窗口之上则为真- 抛出:
SecurityException- 如果调用线程没有权限设置 always-on-top 属性的值- 自从:
- 1.5
- 参见:
-
isAlwaysOnTopSupported
public boolean isAlwaysOnTopSupported()返回此窗口是否支持永远在线模式。有些平台可能不支持永远在线的窗口,有些可能只支持某些类型的顶级窗口;例如,平台可能不支持始终在最前面的模式对话框。- 返回:
true,如果此窗口支持永远在线模式并且此窗口的工具包支持永远在线窗口,false否则- 自从:
- 1.6
- 参见:
-
isAlwaysOnTop
public final boolean isAlwaysOnTop()返回此窗口是否为始终在最前面的窗口。- 返回:
true,如果窗口始终处于顶层状态,false否则- 自从:
- 1.5
- 参见:
-
getFocusOwner
如果此 Window 获得焦点,则返回此 Window 的具有焦点的子 Component;否则返回 null。- 返回:
- 具有焦点的子组件,如果此 Window 未获得焦点,则为 null
- 参见:
-
getMostRecentFocusOwner
返回此 Window 的子 Component,当此 Window 获得焦点时,它将接收焦点。如果此窗口当前处于焦点状态,则此方法返回与getFocusOwner()相同的组件。如果此 Window 未获得焦点,则将返回最近请求焦点的子组件。如果没有子组件请求过焦点,并且这是一个可聚焦的窗口,则返回此窗口的初始可聚焦组件。如果没有子组件曾经请求过焦点,并且这是一个不可聚焦的窗口,则返回 null。- 返回:
- 当此 Window 获得焦点时将获得焦点的子 Component
- 自从:
- 1.4
- 参见:
-
isActive
public boolean isActive()返回此窗口是否处于活动状态。只有框架或对话框可能处于活动状态。本机窗口系统可以用特殊装饰表示活动窗口或其子窗口,例如突出显示的标题栏。活动窗口始终是焦点窗口,或者是焦点窗口所有者的第一个框架或对话框。- 返回:
- 这是否是活动窗口。
- 自从:
- 1.4
- 参见:
-
isFocused
public boolean isFocused()返回此 Window 是否获得焦点。如果存在焦点所有者,则焦点窗口是属于或包含该焦点所有者的窗口。如果没有焦点所有者,则没有焦点窗口。如果焦点窗口是框架或对话框,它也是活动窗口。否则,活动窗口是作为焦点窗口所有者的第一个框架或对话框。
- 返回:
- 这是否是焦点窗口。
- 自从:
- 1.4
- 参见:
-
getFocusTraversalKeys
获取此 Window 的焦点遍历键。 (有关每个键的完整说明,请参阅setFocusTraversalKeys。)如果没有为该窗口显式设置遍历键,则返回该窗口的父级遍历键。如果尚未为此 Window 的任何祖先显式设置遍历键,则返回当前 KeyboardFocusManager 的默认遍历键。
- 重写:
getFocusTraversalKeys在类Container中- 参数:
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
- 参见:
-
setFocusCycleRoot
public final void setFocusCycleRoot(boolean focusCycleRoot) 什么也不做,因为 Windows 必须始终是焦点遍历循环的根。传入的值将被忽略。- 重写:
setFocusCycleRoot在类Container中- 参数:
focusCycleRoot- 这个值被忽略- 自从:
- 1.4
- 参见:
-
isFocusCycleRoot
public final boolean isFocusCycleRoot()始终返回true,因为所有窗口都必须是焦点遍历循环的根。- 重写:
isFocusCycleRoot在类Container中- 返回:
true- 自从:
- 1.4
- 参见:
-
getFocusCycleRootAncestor
总是返回null因为 Windows 没有祖先;它们代表组件层次结构的顶部。- 重写:
getFocusCycleRootAncestor在类Component中- 返回:
null- 自从:
- 1.4
- 参见:
-
isFocusableWindow
public final boolean isFocusableWindow()返回此 Window 是否可以成为焦点窗口,即此 Window 或其任何子组件是否可以成为焦点所有者。对于可聚焦的框架或对话框,其可聚焦窗口状态必须设置为true。对于不是 Frame 或 Dialog 的 Window 要获得焦点,其可获得焦点的 Window 状态必须设置为true,其最近拥有的 Frame 或 Dialog 必须显示在屏幕上,并且它必须在其焦点遍历循环中至少包含一个 Component .如果不满足这些条件中的任何一个,则此 Window 及其任何子组件都不能成为焦点所有者。- 返回:
true如果这个窗口可以成为焦点窗口;false否则- 自从:
- 1.4
- 参见:
-
getFocusableWindowState
public boolean getFocusableWindowState()如果满足isFocusableWindow中列出的其他要求,则返回此 Window 是否可以成为焦点窗口。如果此方法返回false,则isFocusableWindow也将返回false。如果此方法返回true,则isFocusableWindow可能会返回true或false,具体取决于必须满足的其他要求才能使 Window 成为焦点。默认情况下,所有 Windows 的可聚焦窗口状态都是
true。- 返回:
- 此 Window 是否可以成为焦点 Window
- 自从:
- 1.4
- 参见:
-
setFocusableWindowState
public void setFocusableWindowState(boolean focusableWindowState) 设置如果此 Window 满足isFocusableWindow中概述的其他要求,它是否可以成为焦点窗口。如果此窗口的可聚焦窗口状态设置为false,则isFocusableWindow将返回false。如果此窗口的可聚焦窗口状态设置为true,则isFocusableWindow可能会返回true或false,具体取决于必须满足的其他要求才能使窗口可聚焦。将窗口的可聚焦状态设置为
false是应用程序向 AWT 标识将用作浮动调色板或工具栏的窗口的标准机制,因此应该是不可聚焦的窗口。在可见的Window上设置可聚焦状态可能会在某些平台上产生延迟效果 - 实际更改可能仅在Window隐藏然后再次可见时发生。为确保跨平台的行为一致,请在Window不可见时设置Window的可聚焦状态,然后显示它。- 参数:
focusableWindowState- 此窗口是否可以成为焦点窗口- 自从:
- 1.4
- 参见:
-
setAutoRequestFocus
public void setAutoRequestFocus(boolean autoRequestFocus) 设置此窗口是否应在随后显示(通过调用setVisible(true))或移动到前面(通过调用toFront())获得焦点。请注意,
setVisible(true)可能会被间接调用(例如,当显示窗口的所有者时,会显示窗口)。toFront()也可以间接调用(例如,当setVisible(true)在已经可见的窗口上调用时)。在所有这些情况下,此属性也会生效。该属性的值不会被拥有的窗口继承。
- 参数:
autoRequestFocus- 此窗口是否应集中在随后显示或移动到前面- 自从:
- 1.7
- 参见:
-
isAutoRequestFocus
public boolean isAutoRequestFocus()返回此窗口是否应在随后显示(通过调用setVisible(true))或移动到前面(通过调用toFront())获得焦点。默认情况下,窗口的
autoRequestFocus值为true。- 返回:
autoRequestFocus值- 自从:
- 1.7
- 参见:
-
addPropertyChangeListener
将 PropertyChangeListener 添加到监听列表。监听已为此类的所有绑定属性注册,包括以下内容:- 这个窗口的字体(“字体”)
- 此窗口的背景颜色(“背景”)
- 此窗口的前景色(“前景”)
- 此窗口的可聚焦性(“可聚焦”)
- 此窗口的焦点遍历键启用状态(“focusTraversalKeysEnabled”)
- 此窗口的一组 FORWARD_TRAVERSAL_KEYS(“forwardFocusTraversalKeys”)
- 此窗口的一组 BACKWARD_TRAVERSAL_KEYS(“backwardFocusTraversalKeys”)
- 此窗口的一组 UP_CYCLE_TRAVERSAL_KEYS(“upCycleFocusTraversalKeys”)
- 此窗口的 DOWN_CYCLE_TRAVERSAL_KEYS 集合(“downCycleFocusTraversalKeys”)
- 本窗口的焦点遍历策略(“focusTraversalPolicy”)
- 此窗口的可聚焦窗口状态(“focusableWindowState”)
- 此窗口的总在最上面状态(“alwaysOnTop”)
如果 listener 为 null,则不会抛出异常并且不会执行任何操作。
- 重写:
addPropertyChangeListener在类Container中- 参数:
listener- 要添加的 PropertyChangeListener- 参见:
-
addPropertyChangeListener
将 PropertyChangeListener 添加到特定属性的监听列表。指定的属性可以是用户定义的,也可以是以下之一:- 这个窗口的字体(“字体”)
- 此窗口的背景颜色(“背景”)
- 此窗口的前景色(“前景”)
- 此窗口的可聚焦性(“可聚焦”)
- 此窗口的焦点遍历键启用状态(“focusTraversalKeysEnabled”)
- 此窗口的一组 FORWARD_TRAVERSAL_KEYS(“forwardFocusTraversalKeys”)
- 此窗口的一组 BACKWARD_TRAVERSAL_KEYS(“backwardFocusTraversalKeys”)
- 此窗口的一组 UP_CYCLE_TRAVERSAL_KEYS(“upCycleFocusTraversalKeys”)
- 此窗口的 DOWN_CYCLE_TRAVERSAL_KEYS 集合(“downCycleFocusTraversalKeys”)
- 本窗口的焦点遍历策略(“focusTraversalPolicy”)
- 此窗口的可聚焦窗口状态(“focusableWindowState”)
- 此窗口的总在最上面状态(“alwaysOnTop”)
如果 listener 为 null,则不会抛出异常并且不会执行任何操作。
- 重写:
addPropertyChangeListener在类Container中- 参数:
propertyName- 上面列出的属性名称之一listener- 要添加的 PropertyChangeListener- 参见:
-
isValidateRoot
public boolean isValidateRoot()指示此容器是否为验证根。Window对象是验证根,因此,它们覆盖此方法以返回true。- 重写:
isValidateRoot在类Container中- 返回:
true- 自从:
- 1.7
- 参见:
-
postEvent
已弃用。从 JDK 1.1 版开始,由dispatchEvent(AWTEvent)取代。从接口MenuContainer复制的描述向监听发布事件。- 指定者:
postEvent在接口MenuContainer中- 重写:
postEvent在类Component中- 参数:
e- 要派发的事件- 返回:
- 发布事件的结果
-
isShowing
public boolean isShowing()检查此窗口是否显示在屏幕上。 -
applyResourceBundle
已弃用。从 J2SE 1.4 开始,由Component.applyComponentOrientation取代。- 参数:
rb- 资源包
-
applyResourceBundle
已弃用。从 J2SE 1.4 开始,由Component.applyComponentOrientation取代。- 参数:
rbName- 资源名称
-
setType
设置窗口的类型。此方法只能在窗口不可显示时调用。- 参数:
type- 窗口类型- 抛出:
IllegalComponentStateException- 如果窗口是可显示的。IllegalArgumentException- 如果类型是null- 自从:
- 1.7
- 参见:
-
getType
返回窗口的类型。- 返回:
- 窗口的类型
- 自从:
- 1.7
- 参见:
-
getAccessibleContext
获取与此 Window 关联的 AccessibleContext。对于 Windows,AccessibleContext 采用 AccessibleAWTWindow 的形式。如有必要,将创建一个新的 AccessibleAWTWindow 实例。- 指定者:
getAccessibleContext在接口Accessible中- 重写:
getAccessibleContext在类Component中- 返回:
- 作为此窗口的 AccessibleContext 的 AccessibleAWTWindow
- 自从:
- 1.3
-
setLocationRelativeTo
根据以下场景设置窗口相对于指定组件的位置。下面提到的目标屏幕是调用setLocationRelativeTo方法后窗口应该放置到的屏幕。
- 如果组件是
null,或者与该组件关联的GraphicsConfiguration是null,则窗口位于屏幕中央。可以通过GraphicsEnvironment.getCenterPoint方法获取中心点。 - 如果该组件不是
null,但它当前未显示,则窗口将放置在与该组件关联的GraphicsConfiguration定义的目标屏幕的中心。 - 如果组件不是
null并且显示在屏幕上,则窗口的位置使窗口的中心与组件的中心重合。
如果屏幕配置不允许窗口从一个屏幕移动到另一个屏幕,则窗口仅放置在根据上述条件确定的位置并且其
GraphicsConfiguration不会更改。笔记:如果窗口的下边缘超出屏幕,则窗口被放置在最靠近屏幕中心的
Component一侧。因此,如果组件位于屏幕右侧,则窗口位于其左侧,反之亦然。如果在计算窗口位置后,窗口的上边缘、左边缘或右边缘在屏幕之外,则窗口的定位方式是窗口的上边缘、左边缘或右边缘与屏幕重合屏幕的相应边缘。如果窗口的左边缘和右边缘都在屏幕之外,则窗口位于屏幕的左侧。如果顶部和底部边缘都在屏幕之外,则会发生类似的放置。在这种情况下,窗口位于屏幕的顶部。
该方法更改几何相关数据。因此,本机窗口系统可能会忽略此类请求,或者它可能会修改请求的数据,以便
Window对象的放置和大小与桌面设置密切相关。- 参数:
c- 确定窗口位置所依据的组件- 自从:
- 1.4
- 参见:
- 如果组件是
-
createBufferStrategy
public void createBufferStrategy(int numBuffers) 为该组件创建一个新的多缓冲策略。多缓冲对于渲染性能很有用。此方法尝试根据提供的缓冲区数量创建可用的最佳策略。它将始终创建一个具有该数量缓冲区的BufferStrategy。首先尝试翻页策略,然后尝试使用加速缓冲区的 blitting 策略。最后,使用未加速的块传输策略。每次调用此方法时,都会丢弃此组件的现有缓冲策略。
- 参数:
numBuffers- 要创建的缓冲区数- 抛出:
IllegalArgumentException- 如果 numBuffers 小于 1。IllegalStateException- 如果组件不可显示- 自从:
- 1.4
- 参见:
-
createBufferStrategy
为具有所需缓冲功能的组件创建新的多缓冲策略。这很有用,例如,如果只需要加速内存或翻页(由缓冲区功能指定)。每次调用此方法时,都会丢弃此组件的现有缓冲策略。
- 参数:
numBuffers- 要创建的缓冲区数,包括前端缓冲区caps- 创建缓冲策略所需的功能;不能是null- 抛出:
AWTException- 如果无法支持或满足所提供的功能;这可能会发生,例如,如果当前可用的加速内存不足,或者如果指定了页面翻转但不可能。IllegalArgumentException- 如果 numBuffers 小于 1,或者如果 caps 是null- 自从:
- 1.4
- 参见:
-
getBufferStrategy
返回此组件使用的BufferStrategy。如果尚未创建或已处置BufferStrategy,则此方法将返回 null。- 返回:
- 该组件使用的缓冲策略
- 自从:
- 1.4
- 参见:
-
setLocationByPlatform
public void setLocationByPlatform(boolean locationByPlatform) 设置此 Window 是否应出现在本机窗口系统的默认位置或当前位置(由getLocation返回),下次 Window 可见时。此行为类似于在未以编程方式设置其位置的情况下显示的本机窗口。如果没有明确设置窗口的位置,大多数窗口系统都会级联窗口。一旦窗口显示在屏幕上,就会确定实际位置。也可以通过将系统属性“java.awt.Window.locationByPlatform”设置为“true”来启用此行为,但优先调用此方法。
在调用
setLocationByPlatform后调用setVisible、setLocation和setBounds清除窗口的这个属性。例如,执行以下代码后:
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
- 参见:
-
isLocationByPlatform
public boolean isLocationByPlatform()如果下次此窗口可见时此窗口将出现在本机窗口系统的默认位置,则返回true。如果窗口显示在屏幕上,此方法总是返回false。- 返回:
- 此窗口是否会出现在默认位置
- 自从:
- 1.5
- 参见:
-
setBounds
public void setBounds(int x, int y, int width, int height) 移动此组件并调整其大小。左上角的新位置由x和y指定,新大小由width和height指定。此方法更改与布局相关的信息,因此使组件层次结构无效。
如果
width或height值小于先前调用setMinimumSize指定的最小大小,则会自动放大。该方法更改几何相关数据。因此,本机窗口系统可能会忽略此类请求,或者它可能会修改请求的数据,以便
Window对象的放置和大小与桌面设置密切相关。 -
setBounds
移动此组件并调整其大小以符合新的边界矩形r。该组件的新位置由r.x和r.y指定,其新大小由r.width和r.height指定此方法更改与布局相关的信息,因此使组件层次结构无效。
如果
r.width或r.height值小于先前调用setMinimumSize指定的最小大小,则值将自动放大。该方法更改几何相关数据。因此,本机窗口系统可能会忽略此类请求,或者它可能会修改请求的数据,以便
Window对象的放置和大小与桌面设置密切相关。 -
getOpacity
public float getOpacity()返回窗口的不透明度。- 返回:
- 窗口的不透明度
- 自从:
- 1.7
- 参见:
-
setOpacity
public void setOpacity(float opacity) 设置窗口的不透明度。不透明度值在 [0..1] 范围内。请注意,将不透明度级别设置为 0 可能会也可能不会禁用此窗口上的鼠标事件处理。这是一种依赖于平台的行为。
必须满足以下条件才能将不透明度值设置为小于
1.0f:TRANSLUCENT半透明必须由底层系统支持- 窗口必须是未装饰的(参见
Frame.setUndecorated(boolean)和Dialog.setUndecorated(boolean)) - 窗口不得处于全屏模式(参见
GraphicsDevice.setFullScreenWindow(Window))
如果请求的不透明度值小于
1.0f,并且不满足上述任何条件,则窗口不透明度不会改变,并抛出IllegalComponentStateException。单个像素的半透明度级别也可能受其颜色的 alpha 组件(参见
setBackground(Color))和此窗口的当前形状(参见setShape(Shape))的影响。- 参数:
opacity- 设置为窗口的不透明度级别- 抛出:
IllegalArgumentException- 如果不透明度超出范围 [0..1]IllegalComponentStateException- 如果窗口经过装饰且不透明度小于1.0fIllegalComponentStateException- 如果窗口处于全屏模式,并且不透明度小于1.0fUnsupportedOperationException- 如果不支持GraphicsDevice.WindowTranslucency#TRANSLUCENT TRANSLUCENT半透明且不透明度小于1.0f- 自从:
- 1.7
- 参见:
-
getShape
返回窗口的形状。此方法返回的值可能与之前使用setShape(shape)设置的值不同,但保证表示相同的形状。- 返回:
-
窗口的形状或
null如果没有为窗口指定形状 - 自从:
- 1.7
- 参见:
-
setShape
设置窗口的形状。设置形状会切断窗口的某些部分。只有属于给定
Shape的部分保持可见和可点击。如果 shape 参数为null,此方法将恢复默认形状,使窗口在大多数平台上为矩形。必须满足以下条件才能设置非空形状:
PERPIXEL_TRANSPARENT半透明必须由底层系统支持- 窗口必须是未装饰的(参见
Frame.setUndecorated(boolean)和Dialog.setUndecorated(boolean)) - 窗口不得处于全屏模式(参见
GraphicsDevice.setFullScreenWindow(Window))
如果请求的形状不是
null,并且不满足上述任何条件,则此窗口的形状不会改变,并且将抛出UnsupportedOperationException或IllegalComponentStateException。单个像素的半透明度级别也可能受其颜色的 alpha 组件(参见
setBackground(Color))和不透明度值(参见setOpacity(float))的影响。有关详细信息,请参阅GraphicsDevice.WindowTranslucency。- 参数:
shape- 设置为窗口的形状- 抛出:
IllegalComponentStateException- 如果形状不是null并且窗户是装饰的IllegalComponentStateException- 如果形状不是null并且窗口处于全屏模式UnsupportedOperationException- 如果形状不是null和PERPIXEL_TRANSPARENT不支持半透明- 自从:
- 1.7
- 参见:
-
getBackground
获取此窗口的背景颜色。请注意,返回颜色的 alpha 组件指示窗口是否处于非不透明(每像素半透明)模式。
- 重写:
getBackground在类Component中- 返回:
- 该组件的背景色
- 参见:
-
setBackground
设置此窗口的背景颜色。如果窗口系统支持
PERPIXEL_TRANSLUCENT半透明,则给定背景颜色的 alpha 组件可能会影响此窗口的操作模式:它指示此窗口是否必须是不透明的(alpha 等于1.0f)或每像素半透明(alpha 小于1.0f)。如果给定的背景颜色是null,窗口被认为是完全不透明的。必须满足以下所有条件才能为此窗口启用逐像素透明模式:
- 此窗口所在的图形设备必须支持
PERPIXEL_TRANSLUCENT半透明 - 窗口必须是未装饰的(参见
Frame.setUndecorated(boolean)和Dialog.setUndecorated(boolean)) - 窗口不得处于全屏模式(参见
GraphicsDevice.setFullScreenWindow(Window))
如果请求的背景色的 alpha 组件小于
1.0f,并且不满足上述任何条件,则此窗口的背景色不会改变,给定背景色的 alpha 组件不会影响操作模式这个窗口,并且UnsupportedOperationException或IllegalComponentStateException将被抛出。当窗口是逐像素半透明时,绘图子系统会考虑每个单独像素的 alpha 值。如果像素的 alpha 颜色组件为零,则它在视觉上变得透明。如果像素的 alpha 等于 1.0f,则该像素是完全不透明的。 alpha 颜色组件的中间值使像素半透明。在这种模式下,窗口的背景被绘制为给定背景颜色的 alpha 值。如果此方法的参数的 alpha 值等于
0,则根本不绘制背景。给定像素的实际半透明度水平还取决于窗口不透明度(参见
setOpacity(float)),以及该窗口的当前形状(参见setShape(Shape))。请注意,使用
0的 alpha 值绘制像素可能会也可能不会禁用此像素上的鼠标事件处理。这是一种依赖于平台的行为。为了确保鼠标事件不会被分派到特定像素,该像素必须从窗口的形状中排除。由于本机平台要求,启用逐像素半透明模式可能会更改此窗口的图形配置。
- 重写:
setBackground在类Component中- 参数:
bgColor- 成为此窗口背景色的颜色。- 抛出:
IllegalComponentStateException- 如果给定背景颜色的 alpha 值小于1.0f并且窗口被装饰IllegalComponentStateException- 如果给定背景颜色的 alpha 值小于1.0f并且窗口处于全屏模式UnsupportedOperationException- 如果给定背景颜色的 alpha 值小于1.0f并且不支持PERPIXEL_TRANSLUCENT半透明- 参见:
- 此窗口所在的图形设备必须支持
-
isOpaque
public boolean isOpaque()指示窗口当前是否不透明。如果窗口的背景颜色不是
null并且该颜色的 alpha 组件小于1.0f,则该方法返回false。否则该方法返回true。 -
paint
绘制容器。这会将绘制转发到作为此容器子项的任何轻量级组件。如果重新实现此方法,则应调用 super.paint(g) 以便正确渲染轻量级组件。如果子组件完全被 g 中的当前裁剪设置裁剪,则不会将 paint() 转发给该子组件。
-
Component.applyComponentOrientation取代。