|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
java.lang.Objectjava.awt.Component
java.awt.Container
java.awt.Window
java.awt.Frame
public class Frame
Frame 是带有标题和边框的顶层窗口。
窗体的大小包括为边框指定的所有区域。边框区域的尺寸可以使用 getInsets 方法获得,但是,由于这些尺寸与平台相关,因此在通过调用 pack 或 show 将窗体设置为可显示之前,将无法获得有效的 insets 值。由于窗体的总大小包括了边框区,因此边框实际上遮掩了窗体的部分区域,并将可用于在矩形中呈现和/或显示子部件的区域限制在一个矩形内,该矩形左上角的位置为 (insets.left, insets.top),宽度为 width - (insets.left + insets.right),长度为 height - (insets.top + insets.bottom)。
窗体的默认布局为 BorderLayout。
使用 setUndecorated,窗体可以关闭本机装饰(即 Frame 和 Titlebar)。但只有在窗体不是 displayable 时才能这样做。
在多屏幕环境中,通过使用 Frame(GraphicsConfiguration) 或 Frame(String title, GraphicsConfiguration) 构造 Frame,可以在不同的屏幕设备上创建 Frame。GraphicsConfiguration 对象是目标屏幕设备的 GraphicsConfiguration 对象之一。
在虚拟设备多屏幕环境中(其中桌面区域可以跨越多物理屏幕设备),所有配置的边界都是相对于虚拟坐标系的。虚拟坐标系的原点位于主物理屏幕的左上角。是否使用负坐标取决于主物理屏幕在虚拟设备中的位置,如下图所示。
在此环境中调用 setLocation 时,必须传递一个虚拟坐标到此方法中。类似地,对 Frame 调用 getLocationOnScreen 将返回虚拟设备坐标。调用 GraphicsConfiguration 的 getBounds 方法可查找它在虚拟坐标系中的原点。
以下代码将 Frame 的位置设置为 (10, 10)(相对于相应 GraphicsConfiguration 的物理屏幕的原点)。如果不考虑 GraphicsConfiguration 的边界,则 Frame 的位置将被设置为 (10, 10)(相对于虚拟坐标系),并出现在主物理屏幕上,主物理屏幕不同于指定的 GraphicsConfiguration 的物理屏幕。
Frame f = new Frame(GraphicsConfiguration gc);
Rectangle bounds = gc.getBounds();
f.setLocation(10 + bounds.x, 10 + bounds.y);
窗体能够生成以下类型的 WindowEvent:
WINDOW_OPENED
WINDOW_CLOSING:WINDOW_CLOSED
WINDOW_ICONIFIED
WINDOW_DEICONIFIED
WINDOW_ACTIVATED
WINDOW_DEACTIVATED
WINDOW_GAINED_FOCUS
WINDOW_LOST_FOCUS
WINDOW_STATE_CHANGED
WindowEvent,
Window.addWindowListener(java.awt.event.WindowListener),
序列化表格| 嵌套类摘要 | |
|---|---|
protected class |
Frame.AccessibleAWTFrame
此类实现对 Frame 类的可访问性支持。 |
| 从类 java.awt.Window 继承的嵌套类/接口 |
|---|
Window.AccessibleAWTWindow |
| 从类 java.awt.Container 继承的嵌套类/接口 |
|---|
Container.AccessibleAWTContainer |
| 从类 java.awt.Component 继承的嵌套类/接口 |
|---|
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy |
| 字段摘要 | |
|---|---|
static int |
CROSSHAIR_CURSOR
已过时。 由 Cursor.CROSSHAIR_CURSOR 取代。 |
static int |
DEFAULT_CURSOR
已过时。 由 Cursor.DEFAULT_CURSOR 取代。 |
static int |
E_RESIZE_CURSOR
已过时。 由 Cursor.E_RESIZE_CURSOR 取代。 |
static int |
HAND_CURSOR
已过时。 由 Cursor.HAND_CURSOR 取代。 |
static int |
ICONIFIED
此状态位指示将窗体图标化。 |
static int |
MAXIMIZED_BOTH
此状态位掩码指示将窗体完全最大化(水平和垂直方向)。 |
static int |
MAXIMIZED_HORIZ
此状态位指示在水平方向将窗体最大化。 |
static int |
MAXIMIZED_VERT
此状态位指示在垂直方向将窗体最大化。 |
static int |
MOVE_CURSOR
已过时。 由 Cursor.MOVE_CURSOR 取代。 |
static int |
N_RESIZE_CURSOR
已过时。 由 Cursor.N_RESIZE_CURSOR 取代。 |
static int |
NE_RESIZE_CURSOR
已过时。 由 Cursor.NE_RESIZE_CURSOR 取代。 |
static int |
NORMAL
窗体处于 "normal" 状态。 |
static int |
NW_RESIZE_CURSOR
已过时。 由 Cursor.NW_RESIZE_CURSOR 取代。 |
static int |
S_RESIZE_CURSOR
已过时。 由 Cursor.S_RESIZE_CURSOR 取代。 |
static int |
SE_RESIZE_CURSOR
已过时。 由 Cursor.SE_RESIZE_CURSOR 取代。 |
static int |
SW_RESIZE_CURSOR
已过时。 由 Cursor.SW_RESIZE_CURSOR 取代。 |
static int |
TEXT_CURSOR
已过时。 由 Cursor.TEXT_CURSOR 取代。 |
static int |
W_RESIZE_CURSOR
已过时。 由 Cursor.W_RESIZE_CURSOR 取代。 |
static int |
WAIT_CURSOR
已过时。 由 Cursor.WAIT_CURSOR 取代。 |
| 从类 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 |
| 构造方法摘要 | |
|---|---|
Frame()
构造一个最初不可见的 Frame 新实例()。 |
|
Frame(GraphicsConfiguration gc)
使用指定的 GraphicsConfiguration 构造一个最初不可见的新 Frame。 |
|
Frame(String title)
构造一个新的、最初不可见的、具有指定标题的 Frame 对象。 |
|
Frame(String title,
GraphicsConfiguration gc)
构造一个新的、初始不可见的、具有指定标题和 GraphicsConfiguration 的 Frame 对象。 |
|
| 方法摘要 | |
|---|---|
void |
addNotify()
通过将此窗体连接到本机屏幕资源,使其成为可显示的。 |
AccessibleContext |
getAccessibleContext()
获取与此窗体有关的 AccessibleContext。 |
int |
getCursorType()
已过时。 从 JDK version 1.1 开始,由 Component.getCursor() 取代。 |
int |
getExtendedState()
获取此窗体的状态。 |
static Frame[] |
getFrames()
返回一个此应用程序创建的所有 Frame 所组成的数组。 |
Image |
getIconImage()
返回要作为此窗体图标显示的图像。 |
Rectangle |
getMaximizedBounds()
获取此窗体的最大化边界。 |
MenuBar |
getMenuBar()
获取此窗体的菜单栏。 |
int |
getState()
获取此窗体的状态(已废弃)。 |
String |
getTitle()
获得窗体的标题。 |
boolean |
isResizable()
指示此窗体是否可由用户调整大小。 |
boolean |
isUndecorated()
指示此窗体是否未装饰。 |
protected String |
paramString()
返回表示此 Frame 状态的字符串。 |
void |
remove(MenuComponent m)
从此窗体移除指定的菜单栏。 |
void |
removeNotify()
通过移除与本机屏幕资源的连接,将此窗体设置为不可显示的。 |
void |
setCursor(int cursorType)
已过时。 从 JDK version 1.1 开始,由 Component.setCursor(Cursor) 取代。 |
void |
setExtendedState(int state)
设置此窗体的状态。 |
void |
setIconImage(Image image)
设置要作为此窗口图标显示的图像。 |
void |
setMaximizedBounds(Rectangle bounds)
设置此窗体的最大化边界。 |
void |
setMenuBar(MenuBar mb)
将此窗体的菜单栏设置为指定的菜单栏。 |
void |
setResizable(boolean resizable)
设置此窗体是否可由用户调整大小。 |
void |
setState(int state)
设置此窗体的状态(已废弃)。 |
void |
setTitle(String title)
将此窗体的标题设置为指定的字符串。 |
void |
setUndecorated(boolean undecorated)
禁用或启用此窗体的装饰。 |
| 从类 java.lang.Object 继承的方法 |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| 从接口 java.awt.MenuContainer 继承的方法 |
|---|
getFont, postEvent |
| 字段详细信息 |
|---|
@Deprecated public static final int DEFAULT_CURSOR
Cursor.DEFAULT_CURSOR 取代。@Deprecated public static final int CROSSHAIR_CURSOR
Cursor.CROSSHAIR_CURSOR 取代。@Deprecated public static final int TEXT_CURSOR
Cursor.TEXT_CURSOR 取代。@Deprecated public static final int WAIT_CURSOR
Cursor.WAIT_CURSOR 取代。@Deprecated public static final int SW_RESIZE_CURSOR
Cursor.SW_RESIZE_CURSOR 取代。@Deprecated public static final int SE_RESIZE_CURSOR
Cursor.SE_RESIZE_CURSOR 取代。@Deprecated public static final int NW_RESIZE_CURSOR
Cursor.NW_RESIZE_CURSOR 取代。@Deprecated public static final int NE_RESIZE_CURSOR
Cursor.NE_RESIZE_CURSOR 取代。@Deprecated public static final int N_RESIZE_CURSOR
Cursor.N_RESIZE_CURSOR 取代。@Deprecated public static final int S_RESIZE_CURSOR
Cursor.S_RESIZE_CURSOR 取代。@Deprecated public static final int W_RESIZE_CURSOR
Cursor.W_RESIZE_CURSOR 取代。@Deprecated public static final int E_RESIZE_CURSOR
Cursor.E_RESIZE_CURSOR 取代。@Deprecated public static final int HAND_CURSOR
Cursor.HAND_CURSOR 取代。@Deprecated public static final int MOVE_CURSOR
Cursor.MOVE_CURSOR 取代。public static final int NORMAL
setExtendedState(int),
getExtendedState(),
常量字段值public static final int ICONIFIED
setExtendedState(int),
getExtendedState(),
常量字段值public static final int MAXIMIZED_HORIZ
setExtendedState(int),
getExtendedState(),
常量字段值public static final int MAXIMIZED_VERT
setExtendedState(int),
getExtendedState(),
常量字段值public static final int MAXIMIZED_BOTH
MAXIMIZED_VERT | MAXIMIZED_HORIZ 的一种便捷别名。
注意,要正确测试窗体是否完全最大化,使用以下方法:
(state & Frame.MAXIMIZED_BOTH) == Frame.MAXIMIZED_BOTH
要测试窗体是否在某个 方向最大化,使用:
(state & Frame.MAXIMIZED_BOTH) != 0
setExtendedState(int),
getExtendedState(),
常量字段值| 构造方法详细信息 |
|---|
public Frame()
throws HeadlessException
Frame 新实例()。Frame 的标题为空。
HeadlessException - 当 GraphicsEnvironment.isHeadless() 返回 true 时GraphicsEnvironment.isHeadless(),
Component.setSize(int, int),
Component.setVisible(boolean)public Frame(GraphicsConfiguration gc)
GraphicsConfiguration 构造一个最初不可见的新 Frame。
gc - 目标屏幕设备的 GraphicsConfiguration。如果 gc 为 null,则假定它为系统默认的 GraphicsConfiguration。
IllegalArgumentException - 如果 gc 不是来自屏幕设备。
HeadlessException - 当 GraphicsEnvironment.isHeadless() 返回 true 时GraphicsEnvironment.isHeadless()
public Frame(String title)
throws HeadlessException
Frame 对象。
title - 要显示在窗体边框中的标题。null 值视为空字符串 ""。
HeadlessException - 当 GraphicsEnvironment.isHeadless() 返回 true 时GraphicsEnvironment.isHeadless(),
Component.setSize(int, int),
Component.setVisible(boolean),
GraphicsConfiguration.getBounds()
public Frame(String title,
GraphicsConfiguration gc)
GraphicsConfiguration 的 Frame 对象。
title - 要显示在窗体边框中的标题。null 值视为空字符串 ""。gc - 目标屏幕设备的 GraphicsConfiguration。如果 gc 为 null,则假定它为系统默认的 GraphicsConfiguration。
IllegalArgumentException - 如果 gc 不是来自屏幕设备。
HeadlessException - 当 GraphicsEnvironment.isHeadless() 返回 true 时GraphicsEnvironment.isHeadless(),
Component.setSize(int, int),
Component.setVisible(boolean),
GraphicsConfiguration.getBounds()| 方法详细信息 |
|---|
public void addNotify()
Window 中的 addNotifyComponent.isDisplayable(),
removeNotify()public String getTitle()
setTitle(String)public void setTitle(String title)
title - 要显示在窗体边框中的标题。null 值视为空字符串 ""。getTitle()public Image getIconImage()
此方法已废弃,保留它只是为了向后兼容性。使用 Window.getIconImages() 代替。
如果将几个图像的列表指定为 Window 的图标,则此方法返回列表的第一项。
null。setIconImage(Image),
Window.getIconImages(),
Window.setIconImages(java.util.List extends java.awt.Image>)public void setIconImage(Image image)
将单个图像指定为窗口的图标时,可以使用此方法代替 setIconImages()。
以下语句:
setIconImage(image);
等价于:
ArrayList imageList = new ArrayList();
imageList.add(image);
setIconImages(imageList);
注:根据上下文的不同(例如,窗口装饰、窗口列表、任务栏等),本机窗口系统可以使用不同尺寸的不同图像表示一个窗口。也可以对所有上下文使用一个图像,或者根本不用图像。
Window 中的 setIconImageimage - 要显示的图标图像。Window.setIconImages(java.util.List extends java.awt.Image>),
Window.getIconImages()public MenuBar getMenuBar()
null。setMenuBar(MenuBar)public void setMenuBar(MenuBar mb)
mb - 正被设置的菜单栏。如果此参数为 null,则移除此窗体上现有的所有菜单栏。getMenuBar()public boolean isResizable()
true;否则返回 false。setResizable(boolean)public void setResizable(boolean resizable)
resizable - 如果此窗体是可调整大小的,则为 true;否则为 false。isResizable()public void setState(int state)
在较早的 JDK 版本中,窗体的状态只能为 NORMAL 或 ICONIFIED。自从 JDK 1.4 以来,受支持的窗体状态集合扩大了,窗体状态表示为逐位掩码。
为了与原有的程序兼容,此方法仍然接受 Frame.NORMAL 和 Frame.ICONIFIED,但它只改变窗体的图标状态,而不影响窗体其他方面的状态。
state - Frame.NORMAL 或 Frame.ICONIFIED。getState(),
setExtendedState(int)public void setExtendedState(int state)
NORMAL ICONIFIED
MAXIMIZED_HORIZ
MAXIMIZED_VERT
MAXIMIZED_BOTH MAXIMIZED_HORIZ 和 MAXIMIZED_VERT。
注意,如果该状态在给定平台上不受支持,则什么也不会发生。应用程序可以通过 java.awt.Toolkit#isFrameStateSupported(int state) 方法确定特定的状态是否可用。
state - 窗体状态常量的逐位掩码getExtendedState(),
Toolkit.isFrameStateSupported(int)public int getState()
在较早的 JDK 版本中,窗体的状态只能为 NORMAL 或 ICONIFIED。自从 JDK 1.4 以来,受支持的窗体状态集合扩大了,窗体状态表示为逐位掩码。
为了与原有的程序兼容,此方法仍然返回 Frame.NORMAL 和 Frame.ICONIFIED,但它只报告窗体的图标状态,而不报告窗体其他方面的状态。
Frame.NORMAL 或 Frame.ICONIFIED。setState(int),
getExtendedState()public int getExtendedState()
NORMAL ICONIFIED
MAXIMIZED_HORIZ
MAXIMIZED_VERT
MAXIMIZED_BOTH MAXIMIZED_HORIZ 和 MAXIMIZED_VERT。
setExtendedState(int)public void setMaximizedBounds(Rectangle bounds)
当窗体处于最大化状态时,系统提供默认边界。此方法允许重写系统提供的部分或全部值。
如果 bounds 为 null,则接受系统提供的边界。如果 bound 不为 null,则可以重写系统提供的某些值而接受其他值,这通过将希望从系统接受的那些字段设置为 Integer.MAX_VALUE 来完成。
在某些系统中,只考虑部分边界的大小。
bounds - 最大化状态的边界getMaximizedBounds()public Rectangle getMaximizedBounds()
Integer.MAX_VALUE,指示必须使用系统为该字段提供的值。
nullsetMaximizedBounds(Rectangle)public void setUndecorated(boolean undecorated)
undecorated - 如果没有启用窗体装饰,则为 true;如果启用了窗体装饰,则为 false。
IllegalComponentStateException - 如果窗体是可显示的。isUndecorated(),
Component.isDisplayable(),
JFrame.setDefaultLookAndFeelDecorated(boolean)public boolean isUndecorated()
true;否则返回 false。setUndecorated(boolean)public void remove(MenuComponent m)
MenuContainer 中的 removeComponent 中的 removem - 要移除的菜单组件。如果 m 为 null,则不执行任何操作。Component.add(PopupMenu)public void removeNotify()
Window 中的 removeNotifyComponent.isDisplayable(),
addNotify()protected String paramString()
Frame 状态的字符串。此方法仅用于调试目的,对于各个实现,所返回字符串的内容和格式可能有所不同。返回的字符串可能为空,但不可能为 null。
Container 中的 paramString@Deprecated public void setCursor(int cursorType)
Component.setCursor(Cursor) 取代。
@Deprecated public int getCursorType()
Component.getCursor() 取代。
public static Frame[] getFrames()
Frame 所组成的数组。如果从 applet 调用,则数组只包括该 applet 可访问的 Frame。
警告: 此方法可能返回系统创建的窗体,如 Swing 使用的共享的、隐藏的窗体。应用程序不应该假定这些窗口存在,也不应该假定与这些窗体有关的任何内容(如组件位置、LayoutManager 或序列化)存在。
注:若要获得没有所有者的窗口列表,包括没有所有者的 Dialog(在版本 1.6 中引入),请使用 Window.getOwnerlessWindows。
Window.getWindows(sun.awt.AppContext),
Window.getOwnerlessWindows()public AccessibleContext getAccessibleContext()
Accessible 中的 getAccessibleContextWindow 中的 getAccessibleContext
|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。