Wednesday, December 17, 2008
Thursday, November 27, 2008
API of Frame Class
java.awt
Class Frame
java.lang.Object
java.awt.Component
java.awt.Container
java.awt.Window
java.awt.Frame
- All Implemented Interfaces:
- ImageObserver, MenuContainer, Serializable, Accessible
- Direct Known Subclasses:
- JFrame
public class Frame
- extends Window
- implements MenuContainer
A Frame
is a top-level window with a title and a border.
The size of the frame includes any area designated for the border. The dimensions of the border area may be obtained using the getInsets
method, however, since these dimensions are platform-dependent, a valid insets value cannot be obtained until the frame is made displayable by either calling pack
or show
. Since the border area is included in the overall size of the frame, the border effectively obscures a portion of the frame, constraining the area available for rendering and/or displaying subcomponents to the rectangle which has an upper-left corner location of (insets.left, insets.top)
, and has a size of width - (insets.left + insets.right)
by height - (insets.top + insets.bottom)
.
The default layout for a frame is BorderLayout
.
A frame may have its native decorations (i.e. Frame
and Titlebar
) turned off with setUndecorated
. This can only be done while the frame is not displayable
.
In a multi-screen environment, you can create a Frame
on a different screen device by constructing the Frame
with Frame(GraphicsConfiguration)
or Frame(String title, GraphicsConfiguration)
. The GraphicsConfiguration
object is one of the GraphicsConfiguration
objects of the target screen device.
In a virtual device multi-screen environment in which the desktop area could span multiple physical screen devices, the bounds of all configurations are relative to the virtual-coordinate system. The origin of the virtual-coordinate system is at the upper left-hand corner of the primary physical screen. Depending on the location of the primary screen in the virtual device, negative coordinates are possible, as shown in the following figure.
In such an environment, when calling setLocation
, you must pass a virtual coordinate to this method. Similarly, calling getLocationOnScreen
on a Frame
returns virtual device coordinates. Call the getBounds
method of a GraphicsConfiguration
to find its origin in the virtual coordinate system.
The following code sets the location of the Frame
at (10, 10) relative to the origin of the physical screen of the corresponding GraphicsConfiguration
. If the bounds of the GraphicsConfiguration
is not taken into account, the Frame
location would be set at (10, 10) relative to the virtual-coordinate system and would appear on the primary physical screen, which might be different from the physical screen of the specified GraphicsConfiguration
.
Frame f = new Frame(GraphicsConfiguration gc);
Rectangle bounds = gc.getBounds();
f.setLocation(10 + bounds.x, 10 + bounds.y);
Frames are capable of generating the following types of WindowEvent
s:
WINDOW_OPENED
WINDOW_CLOSING
:
If the program doesn't explicitly hide or dispose the window while processing this event, the window close operation is canceled.WINDOW_CLOSED
WINDOW_ICONIFIED
WINDOW_DEICONIFIED
WINDOW_ACTIVATED
WINDOW_DEACTIVATED
WINDOW_GAINED_FOCUS
WINDOW_LOST_FOCUS
WINDOW_STATE_CHANGED
- Since:
- JDK1.0
- See Also:
WindowEvent
,Window.addWindowListener(java.awt.event.WindowListener)
, Serialized Form
Nested Class Summary | |
---|---|
protected class | Frame.AccessibleAWTFrame This class implements accessibility support for the Frame class. |
Nested classes/interfaces inherited from class java.awt.Window |
---|
Window.AccessibleAWTWindow |
Nested classes/interfaces inherited from class java.awt.Container |
---|
Container.AccessibleAWTContainer |
Nested classes/interfaces inherited from class java.awt.Component |
---|
Component.AccessibleAWTComponent, Component.BltBufferStrategy, Component.FlipBufferStrategy |
Field Summary | |
---|---|
static int | CROSSHAIR_CURSOR Deprecated. replaced by Cursor.CROSSHAIR_CURSOR . |
static int | DEFAULT_CURSOR Deprecated. replaced by Cursor.DEFAULT_CURSOR . |
static int | E_RESIZE_CURSOR Deprecated. replaced by Cursor.E_RESIZE_CURSOR . |
static int | HAND_CURSOR Deprecated. replaced by Cursor.HAND_CURSOR . |
static int | ICONIFIED This state bit indicates that frame is iconified. |
static int | MAXIMIZED_BOTH This state bit mask indicates that frame is fully maximized (that is both horizontally and vertically). |
static int | MAXIMIZED_HORIZ This state bit indicates that frame is maximized in the horizontal direction. |
static int | MAXIMIZED_VERT This state bit indicates that frame is maximized in the vertical direction. |
static int | MOVE_CURSOR Deprecated. replaced by Cursor.MOVE_CURSOR . |
static int | N_RESIZE_CURSOR Deprecated. replaced by Cursor.N_RESIZE_CURSOR . |
static int | NE_RESIZE_CURSOR Deprecated. replaced by Cursor.NE_RESIZE_CURSOR . |
static int | NORMAL Frame is in the "normal" state. |
static int | NW_RESIZE_CURSOR Deprecated. replaced by Cursor.NW_RESIZE_CURSOR . |
static int | S_RESIZE_CURSOR Deprecated. replaced by Cursor.S_RESIZE_CURSOR . |
static int | SE_RESIZE_CURSOR Deprecated. replaced by Cursor.SE_RESIZE_CURSOR . |
static int | SW_RESIZE_CURSOR Deprecated. replaced by Cursor.SW_RESIZE_CURSOR . |
static int | TEXT_CURSOR Deprecated. replaced by Cursor.TEXT_CURSOR . |
static int | W_RESIZE_CURSOR Deprecated. replaced by Cursor.W_RESIZE_CURSOR . |
static int | WAIT_CURSOR Deprecated. replaced by Cursor.WAIT_CURSOR . |
Fields inherited from class java.awt.Component |
---|
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT |
Fields inherited from interface java.awt.image.ImageObserver |
---|
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH |
Constructor Summary | |
---|---|
Frame() Constructs a new instance of Frame that is initially invisible. | |
Frame(GraphicsConfiguration gc) Create a Frame with the specified GraphicsConfiguration of a screen device. | |
Frame(String title) Constructs a new, initially invisible Frame object with the specified title. | |
Frame(String title, GraphicsConfiguration gc) Constructs a new, initially invisible Frame object with the specified title and a GraphicsConfiguration . |
Method Summary | |
---|---|
void | addNotify() Makes this Frame displayable by connecting it to a native screen resource. |
protected void | finalize() Disposes of the input methods and context, and removes this Frame from the AppContext. |
AccessibleContext | getAccessibleContext() Gets the AccessibleContext associated with this Frame. |
int | getCursorType() Deprecated. As of JDK version 1.1, replaced by Component.getCursor() . |
int | getExtendedState() Gets the state of this frame. |
static Frame[] | getFrames() Returns an array containing all Frames created by the application. |
Image | getIconImage() Gets the image to be displayed in the minimized icon for this frame. |
Rectangle | getMaximizedBounds() Gets maximized bounds for this frame. |
MenuBar | getMenuBar() Gets the menu bar for this frame. |
int | getState() Gets the state of this frame (obsolete). |
String | getTitle() Gets the title of the frame. |
boolean | isResizable() Indicates whether this frame is resizable by the user. |
boolean | isUndecorated() Indicates whether this frame is undecorated. |
protected String | paramString() Returns a string representing the state of this Frame . |
void | remove(MenuComponent m) Removes the specified menu bar from this frame. |
void | removeNotify() Makes this Frame undisplayable by removing its connection to its native screen resource. |
void | setCursor(int cursorType) Deprecated. As of JDK version 1.1, replaced by Component.setCursor(Cursor) . |
void | setExtendedState(int state) Sets the state of this frame. |
void | setIconImage(Image image) Sets the image to be displayed in the minimized icon for this frame. |
void | setMaximizedBounds(Rectangle bounds) Sets the maximized bounds for this frame. |
void | setMenuBar(MenuBar mb) Sets the menu bar for this frame to the specified menu bar. |
void | setResizable(boolean resizable) Sets whether this frame is resizable by the user. |
void | setState(int state) Sets the state of this frame (obsolete). |
void | setTitle(String title) Sets the title for this frame to the specified string. |
void | setUndecorated(boolean undecorated) Disables or enables decorations for this frame. |
Methods inherited from class java.lang.Object |
---|
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Methods inherited from interface java.awt.MenuContainer |
---|
getFont, postEvent |
Field Detail |
---|
DEFAULT_CURSOR
@Deprecated
public static final int DEFAULT_CURSOR
- Deprecated. replaced by
Cursor.DEFAULT_CURSOR
.- See Also:
- Constant Field Values
CROSSHAIR_CURSOR
@Deprecated
public static final int CROSSHAIR_CURSOR
- Deprecated. replaced by
Cursor.CROSSHAIR_CURSOR
.- See Also:
- Constant Field Values
TEXT_CURSOR
@Deprecated
public static final int TEXT_CURSOR
- Deprecated. replaced by
Cursor.TEXT_CURSOR
.- See Also:
- Constant Field Values
WAIT_CURSOR
@Deprecated
public static final int WAIT_CURSOR
- Deprecated. replaced by
Cursor.WAIT_CURSOR
.- See Also:
- Constant Field Values
SW_RESIZE_CURSOR
@Deprecated
public static final int SW_RESIZE_CURSOR
- Deprecated. replaced by
Cursor.SW_RESIZE_CURSOR
.- See Also:
- Constant Field Values
SE_RESIZE_CURSOR
@Deprecated
public static final int SE_RESIZE_CURSOR
- Deprecated. replaced by
Cursor.SE_RESIZE_CURSOR
.- See Also:
- Constant Field Values
NW_RESIZE_CURSOR
@Deprecated
public static final int NW_RESIZE_CURSOR
- Deprecated. replaced by
Cursor.NW_RESIZE_CURSOR
.- See Also:
- Constant Field Values
NE_RESIZE_CURSOR
@Deprecated
public static final int NE_RESIZE_CURSOR
- Deprecated. replaced by
Cursor.NE_RESIZE_CURSOR
.- See Also:
- Constant Field Values
N_RESIZE_CURSOR
@Deprecated
public static final int N_RESIZE_CURSOR
- Deprecated. replaced by
Cursor.N_RESIZE_CURSOR
.- See Also:
- Constant Field Values
S_RESIZE_CURSOR
@Deprecated
public static final int S_RESIZE_CURSOR
- Deprecated. replaced by
Cursor.S_RESIZE_CURSOR
.- See Also:
- Constant Field Values
W_RESIZE_CURSOR
@Deprecated
public static final int W_RESIZE_CURSOR
- Deprecated. replaced by
Cursor.W_RESIZE_CURSOR
.- See Also:
- Constant Field Values
E_RESIZE_CURSOR
@Deprecated
public static final int E_RESIZE_CURSOR
- Deprecated. replaced by
Cursor.E_RESIZE_CURSOR
.- See Also:
- Constant Field Values
HAND_CURSOR
@Deprecated
public static final int HAND_CURSOR
- Deprecated. replaced by
Cursor.HAND_CURSOR
.- See Also:
- Constant Field Values
MOVE_CURSOR
@Deprecated
public static final int MOVE_CURSOR
- Deprecated. replaced by
Cursor.MOVE_CURSOR
.- See Also:
- Constant Field Values
NORMAL
public static final int NORMAL
- Frame is in the "normal" state. This symbolic constant names a frame state with all state bits cleared.
ICONIFIED
public static final int ICONIFIED
- This state bit indicates that frame is iconified.
MAXIMIZED_HORIZ
public static final int MAXIMIZED_HORIZ
- This state bit indicates that frame is maximized in the horizontal direction.
- Since:
- 1.4
- See Also:
setExtendedState(int)
,getExtendedState()
, Constant Field Values
MAXIMIZED_VERT
public static final int MAXIMIZED_VERT
- This state bit indicates that frame is maximized in the vertical direction.
- Since:
- 1.4
- See Also:
setExtendedState(int)
,getExtendedState()
, Constant Field Values
MAXIMIZED_BOTH
public static final int MAXIMIZED_BOTH
- This state bit mask indicates that frame is fully maximized (that is both horizontally and vertically). It is just a convenience alias for
MAXIMIZED_VERT | MAXIMIZED_HORIZ
.Note that the correct test for frame being fully maximized is
(state & Frame.MAXIMIZED_BOTH) == Frame.MAXIMIZED_BOTH
To test is frame is maximized in some direction use
(state & Frame.MAXIMIZED_BOTH) != 0
- Since:
- 1.4
- See Also:
setExtendedState(int)
,getExtendedState()
, Constant Field Values
Constructor Detail |
---|
Frame
public Frame()
throws HeadlessException
- Constructs a new instance of
Frame
that is initially invisible. The title of theFrame
is empty.- Throws:
HeadlessException
- when GraphicsEnvironment.isHeadless() returns true- See Also:
GraphicsEnvironment.isHeadless()
,Component.setSize(int, int)
,Component.setVisible(boolean)
Frame
public Frame(GraphicsConfiguration gc)
- Create a
Frame
with the specifiedGraphicsConfiguration
of a screen device.- Parameters:
gc
- theGraphicsConfiguration
of the target screen device. Ifgc
isnull
, the system defaultGraphicsConfiguration
is assumed.- Throws:
IllegalArgumentException
- ifgc
is not from a screen device. This exception is always thrown when GraphicsEnvironment.isHeadless() returns true- Since:
- 1.3
- See Also:
GraphicsEnvironment.isHeadless()
Frame
public Frame(String title)
throws HeadlessException
- Constructs a new, initially invisible
Frame
object with the specified title.- Parameters:
title
- the title to be displayed in the frame's border. Anull
value is treated as an empty string, "".- Throws:
HeadlessException
- when GraphicsEnvironment.isHeadless() returns true- See Also:
GraphicsEnvironment.isHeadless()
,Component.setSize(int, int)
,Component.setVisible(boolean)
,GraphicsConfiguration.getBounds()
Frame
public Frame(String title,
GraphicsConfiguration gc)
- Constructs a new, initially invisible
Frame
object with the specified title and aGraphicsConfiguration
.- Parameters:
title
- the title to be displayed in the frame's border. Anull
value is treated as an empty string, "".gc
- theGraphicsConfiguration
of the target screen device. Ifgc
isnull
, the system defaultGraphicsConfiguration
is assumed.- Throws:
IllegalArgumentException
- ifgc
is not from a screen device. This exception is always thrown when GraphicsEnvironment.isHeadless() returns true- See Also:
GraphicsEnvironment.isHeadless()
,Component.setSize(int, int)
,Component.setVisible(boolean)
,GraphicsConfiguration.getBounds()
Method Detail |
---|
finalize
protected void finalize()
throws Throwable
- Disposes of the input methods and context, and removes this Frame from the AppContext. Subclasses that override this method should call super.finalize().
- Throws:
Throwable
- theException
raised by this method
addNotify
public void addNotify()
- Makes this Frame displayable by connecting it to a native screen resource. Making a frame displayable will cause any of its children to be made displayable. This method is called internally by the toolkit and should not be called directly by programs.
- See Also:
Component.isDisplayable()
,removeNotify()
getTitle
public String getTitle()
- Gets the title of the frame. The title is displayed in the frame's border.
- Returns:
- the title of this frame, or an empty string ("") if this frame doesn't have a title.
- See Also:
setTitle(String)
setTitle
public void setTitle(String title)
- Sets the title for this frame to the specified string.
- Parameters:
title
- the title to be displayed in the frame's border. Anull
value is treated as an empty string, "".- See Also:
getTitle()
getIconImage
public Image getIconImage()
- Gets the image to be displayed in the minimized icon for this frame.
- Returns:
- the icon image for this frame, or
null
if this frame doesn't have an icon image. - See Also:
setIconImage(Image)
setIconImage
public void setIconImage(Image image)
- Sets the image to be displayed in the minimized icon for this frame. Not all platforms support the concept of minimizing a window.
- Parameters:
image
- the icon image to be displayed. If this parameter isnull
then the icon image is set to the default image, which may vary with platform.- See Also:
getIconImage()
getMenuBar
public MenuBar getMenuBar()
- Gets the menu bar for this frame.
- Returns:
- the menu bar for this frame, or
null
if this frame doesn't have a menu bar. - See Also:
setMenuBar(MenuBar)
setMenuBar
public void setMenuBar(MenuBar mb)
- Sets the menu bar for this frame to the specified menu bar.
- Parameters:
mb
- the menu bar being set. If this parameter isnull
then any existing menu bar on this frame is removed.- See Also:
getMenuBar()
isResizable
public boolean isResizable()
- Indicates whether this frame is resizable by the user. By default, all frames are initially resizable.
- Returns:
true
if the user can resize this frame;false
otherwise.- See Also:
setResizable(boolean)
setResizable
public void setResizable(boolean resizable)
- Sets whether this frame is resizable by the user.
- Parameters:
resizable
-true
if this frame is resizable;false
otherwise.- See Also:
isResizable()
setState
public void setState(int state)
- Sets the state of this frame (obsolete).
In older versions of JDK a frame state could only be NORMAL or ICONIFIED. Since JDK 1.4 set of supported frame states is expanded and frame state is represented as a bitwise mask.
For compatibility with old programs this method still accepts
Frame.NORMAL
andFrame.ICONIFIED
but it only changes the iconic state of the frame, other aspects of frame state are not affected by this method. - Parameters:
state
- eitherFrame.NORMAL
orFrame.ICONIFIED
.- See Also:
getState()
,setExtendedState(int)
setExtendedState
public void setExtendedState(int state)
- Sets the state of this frame. The state is represented as a bitwise mask.
NORMAL
Indicates that no state bits are set.ICONIFIED
MAXIMIZED_HORIZ
MAXIMIZED_VERT
MAXIMIZED_BOTH
ConcatenatesMAXIMIZED_HORIZ
andMAXIMIZED_VERT
.
Note that if the state is not supported on a given platform, nothing will happen. The application may determine if a specific state is available via the
java.awt.Toolkit#isFrameStateSupported(int state)
method. - Parameters:
state
- a bitwise mask of frame state constants- Since:
- 1.4
- See Also:
getExtendedState()
,Toolkit.isFrameStateSupported(int)
getState
public int getState()
- Gets the state of this frame (obsolete).
In older versions of JDK a frame state could only be NORMAL or ICONIFIED. Since JDK 1.4 set of supported frame states is expanded and frame state is represented as a bitwise mask.
For compatibility with old programs this method still returns
Frame.NORMAL
andFrame.ICONIFIED
but it only reports the iconic state of the frame, other aspects of frame state are not reported by this method. - Returns:
Frame.NORMAL
orFrame.ICONIFIED
.- See Also:
setState(int)
,getExtendedState()
getExtendedState
public int getExtendedState()
- Gets the state of this frame. The state is represented as a bitwise mask.
NORMAL
Indicates that no state bits are set.ICONIFIED
MAXIMIZED_HORIZ
MAXIMIZED_VERT
MAXIMIZED_BOTH
ConcatenatesMAXIMIZED_HORIZ
andMAXIMIZED_VERT
.
- Returns:
- a bitwise mask of frame state constants
- Since:
- 1.4
- See Also:
setExtendedState(int)
setMaximizedBounds
public void setMaximizedBounds(Rectangle bounds)
- Sets the maximized bounds for this frame.
When a frame is in maximized state the system supplies some defaults bounds. This method allows some or all of those system supplied values to be overridden.
If
bounds
isnull
, accept bounds supplied by the system. If non-null
you can override some of the system supplied values while accepting others by setting those fields you want to accept from system toInteger.MAX_VALUE
.On some systems only the size portion of the bounds is taken into account.
- Parameters:
bounds
- bounds for the maximized state- Since:
- 1.4
- See Also:
getMaximizedBounds()
getMaximizedBounds
public Rectangle getMaximizedBounds()
- Gets maximized bounds for this frame. Some fields may contain
Integer.MAX_VALUE
to indicate that system supplied values for this field must be used. - Returns:
- maximized bounds for this frame; may be
null
- Since:
- 1.4
- See Also:
setMaximizedBounds(Rectangle)
setUndecorated
public void setUndecorated(boolean undecorated)
- Disables or enables decorations for this frame. This method can only be called while the frame is not displayable.
- Parameters:
undecorated
-true
if no frame decorations are to be enabled;false
if frame decorations are to be enabled.- Throws:
- if the frame is displayable.IllegalComponentStateException
- Since:
- 1.4
- See Also:
isUndecorated()
,Component.isDisplayable()
,JFrame.setDefaultLookAndFeelDecorated(boolean)
isUndecorated
public boolean isUndecorated()
- Indicates whether this frame is undecorated. By default, all frames are initially decorated.
- Returns:
true
if frame is undecorated;false
otherwise.- Since:
- 1.4
- See Also:
setUndecorated(boolean)
remove
public void remove(MenuComponent m)
- Removes the specified menu bar from this frame.
- Specified by:
remove
in interfaceMenuContainer
- Overrides:
remove
in classComponent
- Parameters:
m
- the menu component to remove. Ifm
isnull
, then no action is taken- See Also:
Component.add(PopupMenu)
removeNotify
public void removeNotify()
- Makes this Frame undisplayable by removing its connection to its native screen resource. Making a Frame undisplayable will cause any of its children to be made undisplayable. This method is called by the toolkit internally and should not be called directly by programs.
- Overrides:
removeNotify
in classContainer
- See Also:
Component.isDisplayable()
,addNotify()
paramString
protected String paramString()
- Returns a string representing the state of this
Frame
. This method is intended to be used only for debugging purposes, and the content and format of the returned string may vary between implementations. The returned string may be empty but may not benull
. - Overrides:
paramString
in classContainer
- Returns:
- the parameter string of this frame
setCursor
@Deprecated
public void setCursor(int cursorType)
- Deprecated. As of JDK version 1.1, replaced by
Component.setCursor(Cursor)
.
getCursorType
@Deprecated
public int getCursorType()
- Deprecated. As of JDK version 1.1, replaced by
Component.getCursor()
.
getFrames
public static Frame[] getFrames()
- Returns an array containing all Frames created by the application. If called from an applet, the array will only include the Frames accessible by that applet.
- Since:
- 1.2
getAccessibleContext
public AccessibleContext getAccessibleContext()
- Gets the AccessibleContext associated with this Frame. For frames, the AccessibleContext takes the form of an AccessibleAWTFrame. A new AccessibleAWTFrame instance is created if necessary.
- Specified by:
getAccessibleContext
in interfaceAccessible
- Overrides:
getAccessibleContext
in classWindow
- Returns:
- an AccessibleAWTFrame that serves as the AccessibleContext of this Frame