|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.lang.Object java.awt.Component java.awt.Container java.awt.Window
public class Window
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。
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 |
构造方法详细信息 |
---|
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()
public Window(Window owner)
Window
作为其所有者,构造一个新的不可见窗口。该 Window 将不是可聚焦的,除非其最近拥有的 Frame 和 Dialog 正在该屏幕上显示。
如果有安全管理程序,那么此方法首先调用安全管理程序的 checkTopLevelWindow
方法(this
作为其参数),以确定是否必须使用警告横幅显示该窗口。
owner
- 要充当所有者的 Window
IllegalArgumentException
- 如果 owner
的 GraphicsConfiguration
不是来自屏幕设备
IllegalArgumentException
- 如果 owner
为 null
。GraphicsEnvironment.isHeadless() 返回 true 时,始终抛出此异常。GraphicsEnvironment.isHeadless()
,
SecurityManager.checkTopLevelWindow(java.lang.Object)
,
isShowing()
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
时,将始终抛出此异常GraphicsEnvironment.isHeadless()
,
SecurityManager.checkTopLevelWindow(java.lang.Object)
,
GraphicsConfiguration.getBounds()
,
isShowing()
方法详细信息 |
---|
protected void finalize() throws Throwable
Throwable
- 此方法抛出的 Exception
public void addNotify()
Component.isDisplayable()
,
Container.removeNotify()
public void pack()
@Deprecated public void show()
Component.setVisible(boolean)
取代。
@Deprecated public void hide()
Component.setVisible(boolean)
取代。
public void dispose()
Window
、其子组件及其拥有的所有子组件所使用的所有本机屏幕资源。即这些 Component
的资源将被破坏,它们使用的所有内存都将返回到操作系统,并将它们标记为不可显示。
通过随后对 pack
或 show
的调用重新构造本机资源,可以再次显示 Window
及其子组件。重新创建的 Window
及其子组件的状态在移除 Window
的点上与这些对象的状态将是一样的(不考虑这些操作之间的其他更改)。
注:当 Java 虚拟机 (VM) 中最后的可显示窗口被移除后,虚拟机可能会终止。有关更多信息,请参阅 AWT Threading Issues。
public void toFront()
将此窗口放在堆栈顺序的顶层,并在此虚拟机中显示在所有其他窗口的上面。如果此窗口不可见,则不会发生任何操作。有些平台不允许被其他窗口拥有的窗口显示在它所拥有的窗口之上。有些平台可能不允许此虚拟机将其窗口放在本机应用程序窗口或其他虚拟机窗口之上。此权限可能取决于此虚拟机中的窗口是否已被设为焦点窗口。将进行所有尝试来移动此窗口,使其位于堆栈顺序中尽可能靠前的位置;不过,开发人员不应假定此方法在所有情形中都可以将此窗口移到所有其他窗口之上。
由于本机窗口系统多种多样,因此无法保证对焦点窗口和活动窗口的更改。在此窗口接收 WINDOW_GAINED_FOCUS 或 WINDOW_ACTIVATED 事件之前,开发人员决不能假定此窗口是焦点窗口或者活动窗口。在顶层窗口是焦点窗口的平台上,此方法可能将此窗口当作焦点窗口(如果它尚未作为焦点窗口)。在堆栈顺序通常不影响焦点窗口的平台上,此方法可能保持不更改焦点窗口和活动窗口。
如果此方法导致此窗口被作为焦点窗口,而且此窗口是一个 Frame 或者 Dialog,则它也将被激活。如果此窗口是焦点窗口,但它不是一个框架或对话框,则拥有此窗口的第一个框架或对话框将被激活。
toBack()
public void toBack()
在此虚拟机中,将此窗口放在堆栈顺序的底部,并将其显示在所有其他窗口之后。如果此窗口不可见,则不发生任何操作。有些平台不允许被其他窗口拥有的窗口出现在其所有者的下面。将进行所有尝试来移动此窗口,使其位于堆栈顺序中尽可能靠后的位置;不过,开发人员不应假定此方法在所有情形中都可以将此窗口移到所有其他窗口之下。
由于本机窗口系统多种多样,因此无法保证对焦点窗口和活动窗口的更改。在此窗口接收 WINDOW_LOST_FOCUS 或 WINDOW_DEACTIVATED 事件之前,开发人员决不能假定此窗口不再是焦点窗口或活动窗口。在顶层窗口为焦点窗口的平台上,此方法可能导致此窗口丢失焦点。在此情况下,此虚拟机中紧跟其后的可作为焦点的窗口将接收焦点。在堆栈顺序通常不影响焦点窗口的平台上,此方法可能保持不更改焦点窗口和活动窗口。
toFront()
public Toolkit getToolkit()
Component
中的 getToolkit
Toolkit
,
Toolkit.getDefaultToolkit()
,
Component.getToolkit()
public final String getWarningString()
checkTopLevelWindow
方法时,该方法返回 false
,则该窗口是不安全的。
如果此窗口是安全的,则 getWarningString
返回 null
。如果此窗口是不安全的,则此方法检查系统属性 awt.appletWarning
,并返回此属性的字符串值。
SecurityManager.checkTopLevelWindow(java.lang.Object)
public Locale getLocale()
Locale
对象。如果未设置区域,则返回默认的区域。
Locale
public InputContext getInputContext()
Component
中的 getInputContext
null
Component.getInputContext()
public void setCursor(Cursor cursor)
cursor
- 由 Cursor
类定义的常量之一。如果此参数为 null,则此窗口的光标将被设置为类型 Cursor.DEFAULT_CURSOR。Component.getCursor()
,
Cursor
public Window getOwner()
public Window[] getOwnedWindows()
public void addWindowListener(WindowListener l)
l
- 窗口侦听器removeWindowListener(java.awt.event.WindowListener)
,
getWindowListeners()
public void addWindowStateListener(WindowStateListener l)
l
为 null,则不抛出异常,而且不执行任何操作。
l
- 窗口状态侦听器removeWindowStateListener(java.awt.event.WindowStateListener)
,
getWindowStateListeners()
public void addWindowFocusListener(WindowFocusListener l)
public void removeWindowListener(WindowListener l)
l
- 窗口侦听器addWindowListener(java.awt.event.WindowListener)
,
getWindowListeners()
public void removeWindowStateListener(WindowStateListener l)
l
为 null
,则不抛出异常,而且不执行任何操作。
l
- 窗口状态侦听器addWindowStateListener(java.awt.event.WindowStateListener)
,
getWindowStateListeners()
public void removeWindowFocusListener(WindowFocusListener l)
l
- 窗口焦点侦听器addWindowFocusListener(java.awt.event.WindowFocusListener)
,
getWindowFocusListeners()
public WindowListener[] getWindowListeners()
WindowListener
,如果当前未注册窗口侦听器,则返回一个空数组addWindowListener(java.awt.event.WindowListener)
,
removeWindowListener(java.awt.event.WindowListener)
public WindowFocusListener[] getWindowFocusListeners()
WindowFocusListener
,如果当前未注册窗口焦点侦听器,则返回一个空数组addWindowFocusListener(java.awt.event.WindowFocusListener)
,
removeWindowFocusListener(java.awt.event.WindowFocusListener)
public WindowStateListener[] getWindowStateListeners()
WindowStateListener
,如果当前未注册窗口状态侦听器,则返回一个空数组addWindowStateListener(java.awt.event.WindowStateListener)
,
removeWindowStateListener(java.awt.event.WindowStateListener)
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
的类或接口getWindowListeners()
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)
protected void processWindowEvent(WindowEvent e)
addWindowListener
注册 WindowListener 对象
enableEvents
启用窗口事件
注意,如果此事件参数为 null
,则此行为不确定,而且可能导致异常。
e
- 窗口事件Component.enableEvents(long)
protected void processWindowFocusEvent(WindowEvent e)
addWindowFocusListener
注册 WindowFocusListener
enableEvents
启用窗口焦点事件
注意,如果此事件参数为 null
,则此行为不确定,而且可能导致异常。
e
- 窗口焦点事件Component.enableEvents(long)
protected void processWindowStateEvent(WindowEvent e)
WindowStateListener
对象。注:不会调用此方法,除非对此窗口启用了窗口状态事件。如果存在以下条件之一,则发生此情况:
addWindowStateListener
注册 WindowStateListener
enableEvents
启用窗口状态事件
注意,如果此事件参数为 null
,则此行为不确定,而且可能导致异常。
e
- 窗口状态事件Component.enableEvents(long)
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 窗口发出 toBack
后,其始终 always-on-top 状态将被设置为 false
。
如果 alwaysOnTop
为 true
,则此方法可使窗口 always-on-top。如果窗口是可见的(这包括将窗口前置,即 toFront
),则将其“锁定”在最顶层的位置。如果窗口不可见,则除了设置 always-on-top 的属性之外,不执行任何操作。如果以后窗口显示出来,则该窗口将 always-on-top。如果窗口已经位于顶层,则此调用不执行任何操作。
如果 alwaysOnTop
为 false
,则此方法会将窗口从 always-on-top 更改为常规状态。该窗口保持在最顶层,但对于任何其他窗口来说,其叠放顺序可以以常规方式更改。如果此窗口不是 always-on-top,则不执行任何操作。如果不存在其他 always-on-top 窗口,则对窗口的相对顺序没有影响。
注:有些平台可能不支持 always-on-top 窗口。如果平台在运行时支持 always-on-top 功能,则不存在要检测的公共 API。
如果安装了 SecurityManager,则必须授予调用线程 AWTPermission "setWindowAlwaysOnTop" 权限,才能设置此属性值。如果未授予此权限,则此方法将抛出 SecurityException,并且属性的当前值保持不变。
alwaysOnTop
- 窗口始终位于顶层状态的新值
SecurityException
- 如果调用线程无权设置 always-on-top 属性值。isAlwaysOnTop()
,
toFront()
,
toBack()
,
AWTPermission
public final boolean isAlwaysOnTop()
true
,否则,返回 false
setAlwaysOnTop(boolean)
public Component getFocusOwner()
getMostRecentFocusOwner()
,
isFocused()
public Component getMostRecentFocusOwner()
getFocusOwner()
相同的组件。如果此窗口不是焦点窗口,则返回最近请求焦点的子组件。如果没有子组件请求过焦点,而且这是一个 focusable 窗口,则返回此窗口最初可成为焦点的组件。如果没有子组件请求过焦点,而且这是一个非 focusable 的窗口,则返回 null。
getFocusOwner()
,
isFocused()
,
isFocusableWindow()
public boolean isActive()
isFocused()
public boolean isFocused()
如果焦点窗口为一个框架或者一个对话框,则该窗口也是一个活动窗口。否则,活动窗口为拥有焦点窗口的第一个框架或对话框。
isActive()
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 之一
IllegalArgumentException
- 如果 id 不是 KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS、KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS、KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS 或 KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS 之一Container.setFocusTraversalKeys(int, java.util.Set extends java.awt.AWTKeyStroke>)
,
KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS
,
KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS
,
KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS
,
KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS
public final void setFocusCycleRoot(boolean focusCycleRoot)
Container
中的 setFocusCycleRoot
focusCycleRoot
- 忽略此值isFocusCycleRoot()
,
Container.setFocusTraversalPolicy(java.awt.FocusTraversalPolicy)
,
Container.getFocusTraversalPolicy()
public final boolean isFocusCycleRoot()
true
,原因是所有窗口必须为焦点遍历循环的根。
Container
中的 isFocusCycleRoot
public final Container getFocusCycleRootAncestor()
null
,原因是窗口没有祖先;它们表示组件层次结构的顶层。
Component
中的 getFocusCycleRootAncestor
null
Container.isFocusCycleRoot()
public final boolean isFocusableWindow()
true
。对于非 focusable 的框架或对话框的窗口,其 focusable 的窗口状态必须设置为 true
,其最近拥有的框架或对话框必须显示在屏幕上,而且它必须至少包含其焦点遍历循环中的一个组件。如果未满足这些条件中的任何一个条件,则此窗口及其任何子组件都不能成为焦点所有者。
true
;否则返回 false
getFocusableWindowState()
,
setFocusableWindowState(boolean)
,
isShowing()
,
Component.isFocusable()
public boolean getFocusableWindowState()
isFocusableWindow
中列出的其他要求,其是否可以成为焦点窗口。如果此方法返回 false
,则 isFocusableWindow
也将返回 false
。如果此方法返回 true
,则 isFocusableWindow
可能返回 true
,也可能返回 false
,具体取决于窗口要成为焦点窗口所必须满足的其他要求。
默认情况下,所有窗口都具有 focusable 的窗口状态 true
。
isFocusableWindow()
,
setFocusableWindowState(boolean)
,
isShowing()
,
Component.setFocusable(boolean)
public void setFocusableWindowState(boolean focusableWindowState)
isFocusableWindow
中列出的其他要求,其是否可以成为焦点窗口。如果此窗口的 focusable 窗口状态设置为 false
,则 isFocusableWindow
将返回 false
。如果此窗口的 focusable 窗口状态设置为 true
,则 isFocusableWindow
可能返回 true
,也可能返回 false
,具体取决于窗口要成为焦点窗口所必须满足的其他要求。
将窗口的 focusable 状态设置为 false
是 AWT 识别应用程序的标准机制,AWT 是可用作浮动调色板或工具栏的窗口,因此应为非 focusable 窗口。在可见的 Window
上设置焦点状态,可能在某些平台上产生延迟的结果 — 仅当 Window
成为隐藏窗口,然后再可见后才发生实际的更改。为确保行为跨平台的一致性,当 WIndow
不可见时设置 Window
的 focusable 状态,然后再显示它。
focusableWindowState
- 此窗口是否可以成为焦点窗口isFocusableWindow()
,
getFocusableWindowState()
,
isShowing()
,
Component.setFocusable(boolean)
public void addPropertyChangeListener(PropertyChangeListener listener)
如果侦听器为 null,则不抛出异常,而且不执行任何操作。
Container
中的 addPropertyChangeListener
listener
- 要添加的 PropertyChangeListenerComponent.removePropertyChangeListener(java.beans.PropertyChangeListener)
,
addPropertyChangeListener(java.lang.String,java.beans.PropertyChangeListener)
public void addPropertyChangeListener(String propertyName, PropertyChangeListener listener)
如果侦听器为 null,则不抛出异常,而且不执行任何操作。
Container
中的 addPropertyChangeListener
propertyName
- 上面列出的属性名之一listener
- 要添加的 PropertyChangeListeneraddPropertyChangeListener(java.beans.PropertyChangeListener)
,
Component.removePropertyChangeListener(java.beans.PropertyChangeListener)
@Deprecated public boolean postEvent(Event e)
dispatchEvent(AWTEvent)
取代。
MenuContainer
中的 postEvent
Component
中的 postEvent
public boolean isShowing()
true
;否则返回 false
Component.setVisible(boolean)
@Deprecated public void applyResourceBundle(ResourceBundle rb)
Component.applyComponentOrientation
取代。
@Deprecated public void applyResourceBundle(String rbName)
Component.applyComponentOrientation
取代。
public AccessibleContext getAccessibleContext()
Accessible
中的 getAccessibleContext
Component
中的 getAccessibleContext
public GraphicsConfiguration getGraphicsConfiguration()
Component
中的 getGraphicsConfiguration
Component
使用的 GraphicsConfiguration
,或者返回 null
public void setLocationRelativeTo(Component c)
c
为 null
,则此窗口位于屏幕的中央。如果该组件的底部在视线以外,则将该窗口放置在 Component
最接近窗口中心的一侧。因此,如果 Component
在屏幕的右部,则 Window
将被放置在左部,反之亦然。
c
- 确定窗口位置涉及的组件public void createBufferStrategy(int numBuffers)
BufferStrategy
。首先尝试 page-flipping 策略,然后使用加速缓冲尝试 blitting 策略。最后使用不加速的 blitting 策略。
每次调用此方法时,就丢弃此组件的现有缓冲策略。
numBuffers
- 要创建的缓冲数
IllegalArgumentException
- 如果 numBuffers 小于 1。
IllegalStateException
- 如果组件不可显示Component.isDisplayable()
,
getBufferStrategy()
public void createBufferStrategy(int numBuffers, BufferCapabilities caps) throws AWTException
每当调用此方法时,就丢弃此组件的现有缓冲策略。
numBuffers
- 要创建的缓冲数,包括前缓冲caps
- 创建缓冲策略所需的功能;不能为 null
AWTException
- 如果提供的功能不受支持或未得到满足,则会发生此情况,例如,如果当前无足够的可用加速内存,或者指定了页翻转,但不可能实现。
IllegalArgumentException
- 如果 numBuffers 小于 1,或者 caps 为 null
getBufferStrategy()
public BufferStrategy getBufferStrategy()
createBufferStrategy(int)
public void setLocationByPlatform(boolean locationByPlatform)
getLocation
返回)。此行为模拟显示的本机窗口,而不以编程方式设置其位置。如果未显式设置窗口的位置,大多数窗口操作系统将层叠显示窗口。一旦窗口显示在屏幕上,其实际位置就被确定。
还可以通过将系统属性 "java.awt.Window.locationByPlatform" 设置为 "true" 来启用此行为,但应优先调用此方法。
在调用 setLocationByPlatform
清除该窗口的此属性之后,调用 setVisible
、setLocation
和 setBounds
。
例如,在执行下面的代码之后:
该窗口将显示在平台的默认位置,而且setLocationByPlatform(true); setVisible(true); boolean flag = isLocationByPlatform();
flag
将为 false
。
在下面的示例中:
窗口将显示在 (10, 10) 的位置,而且setLocationByPlatform(true); setLocation(10, 10); boolean flag = isLocationByPlatform(); setVisible(true);
flag
将为 false
。
locationByPlatform
- 如果此窗口显示在默认位置,则返回 true
,如果显示在当前位置,则返回 false
IllegalComponentStateException
- 如果此窗口显示在屏幕上,而且 locationByPlatform 为 true
。Component.setLocation(int, int)
,
isShowing()
,
Component.setVisible(boolean)
,
isLocationByPlatform()
,
System.getProperty(String)
public boolean isLocationByPlatform()
true
。如果窗口显示在屏幕上,则此方法始终返回 false
。
setLocationByPlatform(boolean)
,
isShowing()
public void setBounds(int x, int y, int width, int height)
x
- 组件的新 x 坐标y
- 组件的新 y 坐标width
- 组件的新 width
height
- 组件的新 height
Component.getBounds()
,
Component.setLocation(int, int)
,
Component.setLocation(Point)
,
Component.setSize(int, int)
,
Component.setSize(Dimension)
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。