Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| JavaTM 2 Platform Std. Ed. v1.3.1
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## javax.swing
Class JFrame

    java.lang.Object
      |
      +--java.awt.Component
            |
            +--java.awt.Container
                  |
                  +--java.awt.Window
                        |
                        +--java.awt.Frame
                              |
                              +--javax.swing.JFrame

All Implemented Interfaces:
  Accessible, ImageObserver, MenuContainer, RootPaneContainer, Serializable, WindowConstants

public class JFrame
extends Frame
implements WindowConstants, Accessible, RootPaneContainer

An extended version of `java.awt.Frame` that adds support for the JFC/Swing component architecture. You can find task-oriented documentation about using `JFrame` in The Java Tutorial, in the section How to Make Frames.

The `JFrame` class is slightly incompatible with `Frame`. Like all other JFC/Swing top-level containers, a `JFrame` contains a `JRootPane` as its only child. The content pane provided by the root pane should, as a rule, contain all the non-menu components displayed by the `JFrame`. This is different from the AWT `Frame` case. For example, to add a child to an AWT frame you'd write:

           frame.add(child);

However using `JFrame` you need to add the child to the `JFrame's` content pane instead:

           frame.getContentPane().add(child);

The same is true for setting layout managers, removing components, listing children, and so on. All these methods should normally be sent to the content pane instead of the JFrame itself. The content pane will always be non-null. Attempting to set it to null will cause the JFrame to throw an exception. The default content pane will have a BorderLayout manager set on it.

Unlike a `Frame`, a `JFrame` has some notion of how to respond when the user attempts to close the window. The default behavior is to simply hide the JFrame when the user closes the window. To change the default behavior, you invoke the method `setDefaultCloseOperation(int)`. To make the `JFrame` behave the same as a `Frame` instance, use `setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE)`.

For more information on content panes and other features that root panes provide, see Using Top-Level Containers in The Java Tutorial.

In a multi-screen environment, you can create a `JFrame` on a different screen device. See `Frame` for more information.

For the keyboard keys used by this component in the standard Look and Feel (L&F) renditions, see the JFrame key assignments.

Warning: Serialized objects of this class will not be compatible with future Swing releases. The current serialization support is appropriate for short term storage or RMI between applications running the same version of Swing. A future release of Swing will provide support for long term persistence.

See Also:
  `JRootPane`, `setDefaultCloseOperation(int)`, `WindowListener.windowClosing(java.awt.event.WindowEvent)`, Serialized Form

Inner Class Summary
`protected class` | `JFrame.AccessibleJFrame` This class implements accessibility support for the `JFrame` class.

Inner classes inherited from class java.awt.Frame
`Frame.AccessibleAWTFrame`

Inner classes inherited from class java.awt.Window
`Window.AccessibleAWTWindow`

Inner classes inherited from class java.awt.Container
`Container.AccessibleAWTContainer`

Inner classes inherited from class java.awt.Component
`Component.AccessibleAWTComponent`

Field Summary
`protected AccessibleContext` | `accessibleContext` The accessible context property.
`static int` | `EXIT_ON_CLOSE` The exit application default window close operation.
`protected JRootPane` | `rootPane` The `JRootPane` instance that manages the `contentPane` and optional `menuBar` for this frame, as well as the `glassPane`.
`protected boolean` | `rootPaneCheckingEnabled` If true then calls to `add` and `setLayout` will cause an exception to be thrown.

Fields inherited from class java.awt.Frame
`CROSSHAIR_CURSOR, DEFAULT_CURSOR, E_RESIZE_CURSOR, HAND_CURSOR, ICONIFIED, MOVE_CURSOR, N_RESIZE_CURSOR, NE_RESIZE_CURSOR, NORMAL, NW_RESIZE_CURSOR, S_RESIZE_CURSOR, SE_RESIZE_CURSOR, SW_RESIZE_CURSOR, TEXT_CURSOR, W_RESIZE_CURSOR, WAIT_CURSOR`

Fields inherited from class java.awt.Component
`BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT`

Fields inherited from interface javax.swing.WindowConstants
`DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, HIDE_ON_CLOSE`

Fields inherited from interface java.awt.image.ImageObserver
`ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH`

Constructor Summary
`JFrame()` Constructs a new frame that is initially invisible.
`JFrame(GraphicsConfiguration gc)` Creates a `Frame` in the specified `GraphicsConfiguration` of a screen device and a blank title.
`JFrame(String title)` Creates a new, initially invisible `Frame` with the specified title.
`JFrame(String title, GraphicsConfiguration gc)` Creates a `JFrame` with the specified title and the specified `GraphicsConfiguration` of a screen device.

Method Summary
`protected void` | `addImpl(Component comp, Object constraints, int index)` By default, children may not be added directly to this component, they must be added to its contentPane instead.
`protected JRootPane` | `createRootPane()` Called by the constructor methods to create the default `rootPane`.
`protected void` | `frameInit()` Called by the constructors to init the `JFrame` properly.
`AccessibleContext` | `getAccessibleContext()` Gets the AccessibleContext associated with this JFrame.
`Container` | `getContentPane()` Returns the `contentPane` object for this frame.
`int` | `getDefaultCloseOperation()` Returns the operation that occurs when the user initiates a "close" on this frame.
`Component` | `getGlassPane()` Returns the `glassPane` object for this frame.
`JMenuBar` | `getJMenuBar()` Returns the menubar set on this frame.
`JLayeredPane` | `getLayeredPane()` Returns the `layeredPane` object for this frame.
`JRootPane` | `getRootPane()` Returns the `rootPane` object for this frame.
`protected boolean` | `isRootPaneCheckingEnabled()` Returns whether calls to `add` and `setLayout` cause an exception to be thrown.
`protected String` | `paramString()` Returns a string representation of this `JFrame`.
`protected void` | `processKeyEvent(KeyEvent e)` Processes key events occurring on this component and, if appropriate, passes them on to components in the frame which have registered interest in them.
`protected void` | `processWindowEvent(WindowEvent e)` Processes window events occurring on this component.
`void` | `remove(Component comp)` Removes the specified component from this container.
`void` | `setContentPane(Container contentPane)` Sets the `contentPane` property.
`void` | `setDefaultCloseOperation(int operation)` Sets the operation that will happen by default when the user initiates a "close" on this frame.
`void` | `setGlassPane(Component glassPane)` Sets the `glassPane` property.
`void` | `setJMenuBar(JMenuBar menubar)` Sets the menubar for this frame.
`void` | `setLayeredPane(JLayeredPane layeredPane)` Sets the `layeredPane` property.
`void` | `setLayout(LayoutManager manager)` By default the layout of this component may not be set, the layout of its `contentPane` should be set instead.
`protected void` | `setRootPane(JRootPane root)` Sets the `rootPane` property.
`protected void` | `setRootPaneCheckingEnabled(boolean enabled)` Determines whether calls to `add` and `setLayout` will cause an exception to be thrown.
`void` | `update(Graphics g)` Just calls `paint(g)`.

Methods inherited from class java.awt.Frame
`addNotify, finalize, getCursorType, getFrames, getIconImage, getMenuBar, getState, getTitle, isResizable, remove, removeNotify, setCursor, setIconImage, setMenuBar, setResizable, setState, setTitle`

Methods inherited from class java.awt.Window
`addWindowListener, applyResourceBundle, applyResourceBundle, dispose, getFocusOwner, getGraphicsConfiguration, getInputContext, getListeners, getLocale, getOwnedWindows, getOwner, getToolkit, getWarningString, hide, isShowing, pack, postEvent, processEvent, removeWindowListener, setCursor, show, toBack, toFront`

Methods inherited from class java.awt.Container
`add, add, add, add, add, addContainerListener, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getInsets, getLayout, getMaximumSize, getMinimumSize, getPreferredSize, insets, invalidate, isAncestorOf, layout, list, list, locate, minimumSize, paint, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setFont, validate, validateTree`

Methods inherited from class java.awt.Component
`action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addPropertyChangeListener, addPropertyChangeListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, getBackground, getBounds, getBounds, getColorModel, getComponentOrientation, getCursor, getDropTarget, getFont, getFontMetrics, getForeground, getGraphics, getHeight, getInputMethodRequests, getLocation, getLocation, getLocationOnScreen, getName, getParent, getPeer, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isDisplayable, isDoubleBuffered, isEnabled, isFocusTraversable, isLightweight, isOpaque, 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, processMouseEvent, processMouseMotionEvent, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, reshape, resize, resize, setBackground, setBounds, setBounds, setComponentOrientation, setDropTarget, setEnabled, setForeground, setLocale, setLocation, setLocation, setName, setSize, setSize, setVisible, show, size, toString, transferFocus`

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

### EXIT_ON_CLOSE

    public static final int EXIT_ON_CLOSE

  The exit application default window close operation. If a window has this set as the close operation and is closed in an applet, a `SecurityException` may be thrown. It is recommended you only use this in an application.

  Since:
    1.3

### rootPane

    protected JRootPane rootPane

  The `JRootPane` instance that manages the `contentPane` and optional `menuBar` for this frame, as well as the `glassPane`.
  See Also:
    `JRootPane`, `RootPaneContainer`

### rootPaneCheckingEnabled

    protected boolean rootPaneCheckingEnabled

  If true then calls to `add` and `setLayout` will cause an exception to be thrown. The default is false.
  See Also:
    `isRootPaneCheckingEnabled()`, `setRootPaneCheckingEnabled(boolean)`

### accessibleContext

    protected AccessibleContext accessibleContext

  The accessible context property.

Constructor Detail

### JFrame

    public JFrame()

  Constructs a new frame that is initially invisible.
  See Also:
    `Component.setSize(int, int)`, `Component.setVisible(boolean)`

### JFrame

    public JFrame(GraphicsConfiguration gc)

  Creates a `Frame` in the specified `GraphicsConfiguration` of a screen device and a blank title.
  Parameters:
    `gc` - the `GraphicsConfiguration` that is used to construct the new `Frame`; if `gc` is `null`, the system default `GraphicsConfiguration` is assumed
  Throws:
    `IllegalArgumentException` - if `gc` is not from a screen device
  Since:
    1.3

### JFrame

    public JFrame(String title)

  Creates a new, initially invisible `Frame` with the specified title.
  Parameters:
    `title` - the title for the frame
  See Also:
    `Component.setSize(int, int)`, `Component.setVisible(boolean)`

### JFrame

    public JFrame(String title,
                  GraphicsConfiguration gc)

  Creates a `JFrame` with the specified title and the specified `GraphicsConfiguration` of a screen device.
  Parameters:
    `title` - the title to be displayed in the frame's border. A `null` value is treated as an empty string, "".
    `gc` - the `GraphicsConfiguration` that is used to construct the new `JFrame` with; if `gc` is `null`, the system default `GraphicsConfiguration` is assumed
  Throws:
    `IllegalArgumentException` - if `gc` is not from a screen device
  Since:
    1.3

Method Detail

### frameInit

    protected void frameInit()

  Called by the constructors to init the `JFrame` properly.

### createRootPane

    protected JRootPane createRootPane()

  Called by the constructor methods to create the default `rootPane`.

### processKeyEvent

    protected void processKeyEvent(KeyEvent e)

  Processes key events occurring on this component and, if appropriate, passes them on to components in the frame which have registered interest in them.
  Overrides:
    `processKeyEvent` in class `Component`
  Parameters:
    `e` - the key event
  See Also:
    `Component.processKeyEvent(java.awt.event.KeyEvent)`

### processWindowEvent

    protected void processWindowEvent(WindowEvent e)

  Processes window events occurring on this component. Hides the window or disposes of it, as specified by the setting of the `defaultCloseOperation` property.
  Overrides:
    `processWindowEvent` in class `Window`
  Parameters:
    `e` - the window event
  See Also:
    `setDefaultCloseOperation(int)`, `Window.processWindowEvent(java.awt.event.WindowEvent)`

### setDefaultCloseOperation

    public void setDefaultCloseOperation(int operation)

  Sets the operation that will happen by default when the user initiates a "close" on this frame. You must specify one of the following choices:

  - `DO_NOTHING_ON_CLOSE` (defined in `WindowConstants`): Don't do anything; require the program to handle the operation in the `windowClosing` method of a registered `WindowListener` object.
  - `HIDE_ON_CLOSE` (defined in `WindowConstants`): Automatically hide the frame after invoking any registered `WindowListener` objects.
  - `DISPOSE_ON_CLOSE` (defined in `WindowConstants`): Automatically hide and dispose the frame after invoking any registered `WindowListener` objects.
  - `EXIT_ON_CLOSE` (defined in `JFrame`): Exit the application using the `System` `exit` method. Use this only in applications.

  The value is set to `HIDE_ON_CLOSE` by default.

  See Also:
    `Window.addWindowListener(java.awt.event.WindowListener)`, `getDefaultCloseOperation()`, `WindowConstants`

### getDefaultCloseOperation

    public int getDefaultCloseOperation()

  Returns the operation that occurs when the user initiates a "close" on this frame.
  Returns:
    an integer indicating the window-close operation
  See Also:
    `setDefaultCloseOperation(int)`

### update

    public void update(Graphics g)

  Just calls `paint(g)`. This method was overridden to prevent an unnecessary call to clear the background.
  Overrides:
    `update` in class `Container`
  Parameters:
    `g` - the Graphics context in which to paint

### setJMenuBar

    public void setJMenuBar(JMenuBar menubar)

  Sets the menubar for this frame.
  Parameters:
    `menubar` - the menubar being placed in the frame
  See Also:
    `getJMenuBar()`

### getJMenuBar

    public JMenuBar getJMenuBar()

  Returns the menubar set on this frame.
  Returns:
    the menubar for this frame
  See Also:
    `setJMenuBar(javax.swing.JMenuBar)`

### isRootPaneCheckingEnabled

    protected boolean isRootPaneCheckingEnabled()

  Returns whether calls to `add` and `setLayout` cause an exception to be thrown.
  Returns:
    true if `add` and `setLayout` are checked; false otherwise
  See Also:
    `addImpl(java.awt.Component, java.lang.Object, int)`, `setLayout(java.awt.LayoutManager)`, `setRootPaneCheckingEnabled(boolean)`

### setRootPaneCheckingEnabled

    protected void setRootPaneCheckingEnabled(boolean enabled)

  Determines whether calls to `add` and `setLayout` will cause an exception to be thrown.
  Parameters:
    `enabled` - true if checking is to be enabled, which causes the exceptions to be thrown
  See Also:
    `addImpl(java.awt.Component, java.lang.Object, int)`, `setLayout(java.awt.LayoutManager)`, `isRootPaneCheckingEnabled()`

### addImpl

    protected void addImpl(Component comp,
                           Object constraints,
                           int index)

  By default, children may not be added directly to this component, they must be added to its contentPane instead. For example:

       thisComponent.getContentPane().add(child)

  An attempt to add to directly to this component will cause an runtime exception to be thrown. Subclasses can disable this behavior.
  Overrides:
    `addImpl` in class `Container`
  Parameters:
    `comp` - the component to be enhanced
    `constraints` - the constraints to be respected
    `index` - the index
  Throws:
    `Error` - if called with `rootPaneChecking` true
  See Also:
    `setRootPaneCheckingEnabled(boolean)`

### remove

    public void remove(Component comp)

  Removes the specified component from this container.
  Overrides:
    `remove` in class `Container`
  Parameters:
    `comp` - the component to be removed
  See Also:
    `Container.add(java.awt.Component)`

### setLayout

    public void setLayout(LayoutManager manager)

  By default the layout of this component may not be set, the layout of its `contentPane` should be set instead. For example:

       thiComponent.getContentPane().setLayout(new BorderLayout())

  An attempt to set the layout of this component will cause an runtime exception to be thrown. Subclasses can disable this behavior.
  Overrides:
    `setLayout` in class `Container`
  Parameters:
    `manager` - the `LayoutManager`
  Throws:
    `Error` - if called with `rootPaneChecking` true
  See Also:
    `setRootPaneCheckingEnabled(boolean)`

### getRootPane

    public JRootPane getRootPane()

  Returns the `rootPane` object for this frame.
  Specified by:
    `getRootPane` in interface `RootPaneContainer`
  Returns:
    the `rootPane` property
  See Also:
    `setRootPane(javax.swing.JRootPane)`, `RootPaneContainer.getRootPane()`

### setRootPane

    protected void setRootPane(JRootPane root)

  Sets the `rootPane` property. This method is called by the constructor.
  Parameters:
    `root` - the `rootPane` object for this frame
  See Also:
    `getRootPane()`

### getContentPane

    public Container getContentPane()

  Returns the `contentPane` object for this frame.
  Specified by:
    `getContentPane` in interface `RootPaneContainer`
  Returns:
    the `contentPane` property
  See Also:
    `setContentPane(java.awt.Container)`, `RootPaneContainer.getContentPane()`

### setContentPane

    public void setContentPane(Container contentPane)

  Sets the `contentPane` property. This method is called by the constructor.
  Specified by:
    `setContentPane` in interface `RootPaneContainer`
  Parameters:
    `contentPane` - the `contentPane` object for this frame
  Throws:
    `IllegalComponentStateException` - (a runtime exception) if the content pane parameter is `null`
  See Also:
    `getContentPane()`, `RootPaneContainer.setContentPane(java.awt.Container)`

### getLayeredPane

    public JLayeredPane getLayeredPane()

  Returns the `layeredPane` object for this frame.
  Specified by:
    `getLayeredPane` in interface `RootPaneContainer`
  Returns:
    the `layeredPane` property
  See Also:
    `setLayeredPane(javax.swing.JLayeredPane)`, `RootPaneContainer.getLayeredPane()`

### setLayeredPane

    public void setLayeredPane(JLayeredPane layeredPane)

  Sets the `layeredPane` property. This method is called by the constructor.
  Specified by:
    `setLayeredPane` in interface `RootPaneContainer`
  Parameters:
    `layeredPane` - the `layeredPane` object for this frame
  Throws:
    `IllegalComponentStateException` - (a runtime exception) if the layered pane parameter is `null`
  See Also:
    `getLayeredPane()`, `RootPaneContainer.setLayeredPane(javax.swing.JLayeredPane)`

### getGlassPane

    public Component getGlassPane()

  Returns the `glassPane` object for this frame.
  Specified by:
    `getGlassPane` in interface `RootPaneContainer`
  Returns:
    the `glassPane` property
  See Also:
    `setGlassPane(java.awt.Component)`, `RootPaneContainer.getGlassPane()`

### setGlassPane

    public void setGlassPane(Component glassPane)

  Sets the `glassPane` property. This method is called by the constructor.
  Specified by:
    `setGlassPane` in interface `RootPaneContainer`
  Parameters:
    `glassPane` - the `glassPane` object for this frame
  See Also:
    `getGlassPane()`, `RootPaneContainer.setGlassPane(java.awt.Component)`

### paramString

    protected String paramString()

  Returns a string representation of this `JFrame`. 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 be `null`.
  Overrides:
    `paramString` in class `Frame`
  Returns:
    a string representation of this `JFrame`

### getAccessibleContext

    public AccessibleContext getAccessibleContext()

  Gets the AccessibleContext associated with this JFrame. For JFrames, the AccessibleContext takes the form of an AccessibleJFrame. A new AccessibleJFrame instance is created if necessary.
  Specified by:
    `getAccessibleContext` in interface `Accessible`
  Overrides:
    `getAccessibleContext` in class `Frame`
  Returns:
    an AccessibleJFrame that serves as the AccessibleContext of this JFrame

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| JavaTM 2 Platform Std. Ed. v1.3.1
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Submit a bug or feature
For further API reference and developer documentation, see Java 2 SDK SE Developer Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.

Java, Java 2D, and JDBC are trademarks or registered trademarks of Sun Microsystems, Inc. in the US and other countries.
Copyright 1993-2001 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.