|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
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
,可以在不同的屏幕设备上创建 Window
。GraphicsConfiguration
对象是目标屏幕设备的 GraphicsConfiguration
对象之一。
在虚拟设备多屏幕环境中(其中桌面区域可以跨越多物理屏幕设备),所有配置的边界都是相对于虚拟设备坐标系统的。虚拟坐标系的原点位于主物理屏幕的左上角。是否使用负坐标,取决于主物理屏幕在虚拟设备中的位置,如下图所示。
在此环境中,调用 setLocation
时,必须传递一个虚拟坐标到此方法中。类似地,对 Frame
调用 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);
注:顶层窗口(包括 Window
、Frame
和 Dialog
)的位置和大小受桌面的窗口管理系统的控制。对 setLocation
、setSize
和 setBounds
的调用是转发到窗口管理系统的请求(不是指令)。将尽所有努力响应这样的请求。但是,在某些情况下,窗口管理系统可以忽略这样的请求,或修改请求的几何结构,以放置和调整 Window
的大小,使之更好地与桌面设置匹配。由于本地事件处理的异步特性,由 getBounds
、getLocation
、getLocationOnScreen
和 getSize
返回的结果可能不反映屏幕上 Window 的实际几何结构,直到处理完最后一个请求。在处理后续的请求的过程中,窗口管理系统满足该请求时,这些值可能会相应地改变。
窗口能够生成以下 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.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 ,构造一个新的不可见窗口 。 |
方法摘要 | ||
---|---|---|
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 、其子组件及其拥有的所有子组件所使用的所有本机屏幕资源。 |
|
protected void |
finalize() 释放输入方法和上下文,并从 GUI 层次结构中移除此 Window。 |
|
AccessibleContext |
getAccessibleContext() 获取与此窗口关联的 AccessibleContext。 |
|
BufferStrategy |
getBufferStrategy() |
|
boolean |
getFocusableWindowState() 返回如果此窗口满足 isFocusableWindow 中列出的其他要求,其是否可以成为焦点窗口。 |
|
Container |
getFocusCycleRootAncestor() 始终返回 null ,原因是窗口没有祖先;它们表示组件层次结构的顶层。 |
|
Component |
getFocusOwner() 如果此窗口为焦点窗口,则返回其具有焦点窗口的子组件;否则返回 null。 |
|
Set<AWTKeyStroke> |
getFocusTraversalKeys(int id) 获取此窗口的焦点遍历键。 |
|
GraphicsConfiguration |
getGraphicsConfiguration() 此方法返回由此窗口使用的 GraphicsConfiguration。 |
|
InputContext |
getInputContext() 获取此窗口的输入上下文。 |
|
|
getListeners(Class<T> listenerType) 返回当前在此 Window 上注册为 FooListener 的所有对象的数组。 |
|
Locale |
getLocale() 如果设置了区域,则获取与此窗口关联的 Locale 对象。 |
|
Component |
getMostRecentFocusOwner() 返回此窗口的子组件,该子组件在此窗口为焦点窗口时将接收焦点。 |
|
Window[] |
getOwnedWindows() 返回包含此窗口当前拥有的所有窗口的数组。 |
|
Window |
getOwner() 返回此窗口的所有者。 |
|
Toolkit |
getToolkit() 返回此框架的工具包。 |
|
String |
getWarningString() 获取此窗口中显示的警告字符串。 |
|
WindowFocusListener[] |
getWindowFocusListeners() 返回在此窗口注册的所有窗口焦点侦听器的数组。 |
|
WindowListener[] |
getWindowListeners() 返回在此窗口注册的所有窗口侦听器的数组。 |
|
WindowStateListener[] |
getWindowStateListeners() 返回在此窗口注册的所有窗口状态侦听器的数组。 |
|
void |
hide() 已过时。 从 JDK 5 开始,由 Component.setVisible(boolean) 取代。 |
|
boolean |
isActive() 返回此窗口是否为活动窗口。 |
|
boolean |
isAlwaysOnTop() 返回此窗口是否为 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 |
removeWindowFocusListener(WindowFocusListener l) 移除指定的窗口焦点侦听器,以便不再从此窗口接收窗口事件。 |
|
void |
removeWindowListener(WindowListener l) 移除指定的窗口侦听器,以便不再从此窗口接收窗口事件。 |
|
void |
removeWindowStateListener(WindowStateListener l) 移除指定的窗口状态侦听器,以便不再从此窗口接收窗口事件。 |
|
void |
setAlwaysOnTop(boolean alwaysOnTop) 更改始终位于顶层的窗口状态。 |
|
void |
setBounds(int x, int y, int width, int height) 重绘组件的指定矩形区域。 |
|
void |
setCursor(Cursor cursor) 设置指定光标的光标图像。 |
|
void |
setFocusableWindowState(boolean focusableWindowState) 设置如果此窗口满足 isFocusableWindow 中列出的其他要求,其是否可以成为焦点窗口。 |
|
void |
setFocusCycleRoot(boolean focusCycleRoot) 不执行任何操作,原因是窗口必须始终为焦点遍历循环的根。 |
|
void |
setLocationByPlatform(boolean locationByPlatform) 设置在下次窗口可见时,此窗口是应显示在本机窗口系统的默认位置,还是应显示在当前位置(由 getLocation 返回)。 |
|
void |
setLocationRelativeTo(Component c) 设置此窗口相对于指定组件的位置。 |
|
void |
show() 已过时。 从 JDK 5 开始,由 Component.setVisible(boolean) 取代。 |
|
void |
toBack() 如果此窗口是可视的,则将此窗口发送到后台,如果它是焦点窗口或活动窗口,则会导致丢失焦点或激活状态。 |
|
void |
toFront() 如果此窗口是可见的,则将此窗口置于前端,并可以将其设为焦点窗口。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait |
构造方法详细信息 |
---|
Window
public Window(Frame owner)
-
使用指定的
Frame
作为其所有者,构造一个新的不可见窗口。该窗口将不是可聚焦的,除非其所有者正显示在屏幕上。如果有安全管理程序,那么此方法首先调用安全管理程序的
checkTopLevelWindow
方法(this
作为其参数),以确定是否必须使用警告横幅显示该窗口。- 参数:
-
owner
- 要充当所有者的Frame
- 抛出:
-
IllegalArgumentException
- 如果owner
的GraphicsConfiguration
不是来自屏幕设备 -
IllegalArgumentException
- 如果owner
为null
;GraphicsEnvironment.isHeadless
返回 true 时,将始终抛出该异常 - 另请参见:
-
GraphicsEnvironment.isHeadless()
,SecurityManager.checkTopLevelWindow(java.lang.Object)
,isShowing()
Window
public Window(Window owner)
-
使用指定
Window
作为其所有者,构造一个新的不可见窗口。该 Window 将不是可聚焦的,除非其最近拥有的 Frame 和 Dialog 正在该屏幕上显示。如果有安全管理程序,那么此方法首先调用安全管理程序的
checkTopLevelWindow
方法(this
作为其参数),以确定是否必须使用警告横幅显示该窗口。- 参数:
-
owner
- 要充当所有者的Window
- 抛出:
-
IllegalArgumentException
- 如果owner
的GraphicsConfiguration
不是来自屏幕设备 -
IllegalArgumentException
- 如果owner
为null
。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
;如果gc
为null
,则使用系统默认的GraphicsConfiguration
- 抛出:
-
IllegalArgumentException
- 如果owner
为null
-
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()。
-
- 抛出:
-
Throwable
- 此方法抛出的Exception
addNotify
public void addNotify()
- 通过创建到其本机屏幕资源的连接,使此窗口变得可显示。此方法由工具包在内部进行调用,并且不应由程序直接调用。
-
- 从以下版本开始:
- JDK1.0
- 另请参见:
-
Component.isDisplayable()
,Container.removeNotify()
pack
public void pack()
- 调整此窗口的大小,以适合其子组件的首选大小和布局。如果该窗口和/或其所有者仍不可显示,则两者在计算首选大小之前变得可显示。在计算首选大小之后,将会验证该 Window。
-
show
@Deprecated public void show()
-
已过时。 从 JDK 5 开始,由
Component.setVisible(boolean)
取代。 -
hide
@Deprecated public void hide()
-
已过时。 从 JDK 5 开始,由
Component.setVisible(boolean)
取代。 -