- All Implemented Interfaces:
ImageObserver
,MenuContainer
,Serializable
,Accessible
,RootPaneContainer
@JavaBean(defaultProperty="accessibleContext", description="A toplevel window which has no system border or controls.") public class JWindow extends Window implements Accessible, RootPaneContainer
JWindow
is a container that can be displayed anywhere on the
user's desktop. It does not have the title bar, window-management buttons,
or other trimmings associated with a JFrame
, but it is still a
"first-class citizen" of the user's desktop, and can exist anywhere
on it.
The JWindow
component contains a JRootPane
as its only child. The contentPane
should be the parent
of any children of the JWindow
.
As a convenience, the add
, remove
, and setLayout
methods of this class are overridden, so that they delegate calls
to the corresponding methods of the ContentPane
.
For example, you can add a child component to a window as follows:
window.add(child);And the child will be added to the contentPane. The
contentPane
will always be non-null
.
Attempting to set it to null
will cause the JWindow
to throw an exception. The default contentPane
will have a
BorderLayout
manager set on it.
Refer to RootPaneContainer
for details on adding, removing and setting the LayoutManager
of a JWindow
.
Please see the JRootPane
documentation for a complete description of
the contentPane
, glassPane
, and
layeredPane
components.
In a multi-screen environment, you can create a JWindow
on a different screen device. See Window
for more
information.
Warning: Swing is not thread safe. For more information see Swing's Threading Policy.
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. As of 1.4, support for long term storage
of all JavaBeans™
has been added to the java.beans
package.
Please see XMLEncoder
.
- Since:
- 1.2
- See Also:
JRootPane
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected class
JWindow.AccessibleJWindow
This class implements accessibility support for theJWindow
class.Nested classes/interfaces declared in class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
-
Field Summary
Fields Modifier and Type Field Description protected AccessibleContext
accessibleContext
The accessible context property.protected JRootPane
rootPane
TheJRootPane
instance that manages thecontentPane
and optionalmenuBar
for this frame, as well as theglassPane
.protected boolean
rootPaneCheckingEnabled
If true then calls toadd
andsetLayout
will be forwarded to thecontentPane
.Fields declared in class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
Fields declared in interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
-
Constructor Summary
Constructors Constructor Description JWindow()
Creates a window with no specified owner.JWindow(Frame owner)
Creates a window with the specified owner frame.JWindow(GraphicsConfiguration gc)
Creates a window with the specifiedGraphicsConfiguration
of a screen device.JWindow(Window owner)
Creates a window with the specified owner window.JWindow(Window owner, GraphicsConfiguration gc)
Creates a window with the specified owner window andGraphicsConfiguration
of a screen device. -
Method Summary
Modifier and Type Method Description protected void
addImpl(Component comp, Object constraints, int index)
Adds the specified childComponent
.protected JRootPane
createRootPane()
Called by the constructor methods to create the defaultrootPane
.AccessibleContext
getAccessibleContext()
Gets the AccessibleContext associated with this JWindow.Container
getContentPane()
Returns theContainer
which is thecontentPane
for this window.Component
getGlassPane()
Returns theglassPane Component
for this window.Graphics
getGraphics()
Creates a graphics context for this component.JLayeredPane
getLayeredPane()
Returns thelayeredPane
object for this window.JRootPane
getRootPane()
Returns therootPane
object for this window.TransferHandler
getTransferHandler()
Gets thetransferHandler
property.protected boolean
isRootPaneCheckingEnabled()
Returns whether calls toadd
andsetLayout
are forwarded to thecontentPane
.protected String
paramString()
Returns a string representation of thisJWindow
.void
remove(Component comp)
Removes the specified component from the container.void
repaint(long time, int x, int y, int width, int height)
Repaints the specified rectangle of this component withintime
milliseconds.void
setContentPane(Container contentPane)
Sets thecontentPane
property for this window.void
setGlassPane(Component glassPane)
Sets theglassPane
property.void
setLayeredPane(JLayeredPane layeredPane)
Sets thelayeredPane
property.void
setLayout(LayoutManager manager)
Sets theLayoutManager
.protected void
setRootPane(JRootPane root)
Sets the newrootPane
object for this window.protected void
setRootPaneCheckingEnabled(boolean enabled)
Sets whether calls toadd
andsetLayout
are forwarded to thecontentPane
.void
setTransferHandler(TransferHandler newHandler)
Sets thetransferHandler
property, which is a mechanism to support transfer of data into this component.void
update(Graphics g)
Callspaint(g)
.protected void
windowInit()
Called by the constructors to init theJWindow
properly.Methods declared in class java.awt.Window
addNotify, addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBackground, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOpacity, getOwnedWindows, getOwner, getOwnerlessWindows, getShape, getToolkit, getType, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, hide, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isAutoRequestFocus, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isOpaque, isShowing, isValidateRoot, pack, paint, postEvent, processEvent, processWindowEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setAutoRequestFocus, setBackground, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImage, setIconImages, setLocation, setLocation, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setOpacity, setShape, setSize, setSize, setType, setVisible, show, toBack, toFront
Methods declared in class java.awt.Container
add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, removeNotify, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, transferFocusDownCycle, validate, validateTree
Methods declared in class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, 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, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, requestFocusInWindow, resize, resize, revalidate, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setMaximumSize, setMixingCutoutShape, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
Field Details
-
rootPane
TheJRootPane
instance that manages thecontentPane
and optionalmenuBar
for this frame, as well as theglassPane
.- See Also:
getRootPane()
,setRootPane(javax.swing.JRootPane)
-
rootPaneCheckingEnabled
protected boolean rootPaneCheckingEnabledIf true then calls toadd
andsetLayout
will be forwarded to thecontentPane
. This is initially false, but is set to true when theJWindow
is constructed. -
accessibleContext
The accessible context property.
-
-
Constructor Details
-
JWindow
public JWindow()Creates a window with no specified owner. This window will not be focusable.This constructor sets the component's locale property to the value returned by
JComponent.getDefaultLocale
.- Throws:
HeadlessException
- ifGraphicsEnvironment.isHeadless()
returns true.- See Also:
GraphicsEnvironment.isHeadless()
,Window.isFocusableWindow()
,JComponent.getDefaultLocale()
-
JWindow
Creates a window with the specifiedGraphicsConfiguration
of a screen device. This window will not be focusable.This constructor sets the component's locale property to the value returned by
JComponent.getDefaultLocale
.- Parameters:
gc
- theGraphicsConfiguration
that is used to construct the new window with; if gc isnull
, the system defaultGraphicsConfiguration
is assumed- Throws:
HeadlessException
- IfGraphicsEnvironment.isHeadless()
returns true.IllegalArgumentException
- ifgc
is not from a screen device.- Since:
- 1.3
- See Also:
GraphicsEnvironment.isHeadless()
,Window.isFocusableWindow()
,JComponent.getDefaultLocale()
-
JWindow
Creates a window with the specified owner frame. Ifowner
isnull
, the shared owner will be used and this window will not be focusable. Also, this window will not be focusable unless its owner is showing on the screen.This constructor sets the component's locale property to the value returned by
JComponent.getDefaultLocale
.- Parameters:
owner
- the frame from which the window is displayed- Throws:
HeadlessException
- if GraphicsEnvironment.isHeadless() returns true.- See Also:
GraphicsEnvironment.isHeadless()
,Window.isFocusableWindow()
,JComponent.getDefaultLocale()
-
JWindow
Creates a window with the specified owner window. This window will not be focusable unless its owner is showing on the screen. Ifowner
isnull
, the shared owner will be used and this window will not be focusable.This constructor sets the component's locale property to the value returned by
JComponent.getDefaultLocale
.- Parameters:
owner
- the window from which the window is displayed- Throws:
HeadlessException
- ifGraphicsEnvironment.isHeadless()
returns true.- See Also:
GraphicsEnvironment.isHeadless()
,Window.isFocusableWindow()
,JComponent.getDefaultLocale()
-
JWindow
Creates a window with the specified owner window andGraphicsConfiguration
of a screen device. Ifowner
isnull
, the shared owner will be used and this window will not be focusable.This constructor sets the component's locale property to the value returned by
JComponent.getDefaultLocale
.- Parameters:
owner
- the window from which the window is displayedgc
- theGraphicsConfiguration
that is used to construct the new window with; if gc isnull
, the system defaultGraphicsConfiguration
is assumed, unlessowner
is also null, in which case theGraphicsConfiguration
from the shared owner frame will be used.- Throws:
HeadlessException
- ifGraphicsEnvironment.isHeadless()
returns true.IllegalArgumentException
- ifgc
is not from a screen device.- Since:
- 1.3
- See Also:
GraphicsEnvironment.isHeadless()
,Window.isFocusableWindow()
,JComponent.getDefaultLocale()
-
-
Method Details
-
windowInit
protected void windowInit()Called by the constructors to init theJWindow
properly. -
createRootPane
Called by the constructor methods to create the defaultrootPane
.- Returns:
- a new
JRootPane
-
isRootPaneCheckingEnabled
protected boolean isRootPaneCheckingEnabled()Returns whether calls toadd
andsetLayout
are forwarded to thecontentPane
.- Returns:
- true if
add
andsetLayout
are forwarded; false otherwise - See Also:
addImpl(java.awt.Component, java.lang.Object, int)
,setLayout(java.awt.LayoutManager)
,setRootPaneCheckingEnabled(boolean)
,RootPaneContainer
-
setTransferHandler
@BeanProperty(hidden=true, description="Mechanism for transfer of data into the component") public void setTransferHandler(TransferHandler newHandler)Sets thetransferHandler
property, which is a mechanism to support transfer of data into this component. Usenull
if the component does not support data transfer operations.If the system property
suppressSwingDropSupport
isfalse
(the default) and the current drop target on this component is eithernull
or not a user-set drop target, this method will change the drop target as follows: IfnewHandler
isnull
it will clear the drop target. If notnull
it will install a newDropTarget
.Note: When used with
JWindow
,TransferHandler
only provides data import capability, as the data export related methods are currently typed toJComponent
.Please see How to Use Drag and Drop and Data Transfer, a section in The Java Tutorial, for more information.
- Parameters:
newHandler
- the newTransferHandler
- Since:
- 1.6
- See Also:
TransferHandler
,getTransferHandler()
,Component.setDropTarget(java.awt.dnd.DropTarget)
-
getTransferHandler
Gets thetransferHandler
property.- Returns:
- the value of the
transferHandler
property - Since:
- 1.6
- See Also:
TransferHandler
,setTransferHandler(javax.swing.TransferHandler)
-
update
Callspaint(g)
. This method was overridden to prevent an unnecessary call to clear the background.- Overrides:
update
in classContainer
- Parameters:
g
- theGraphics
context in which to paint- See Also:
Component.update(Graphics)
-
setRootPaneCheckingEnabled
@BeanProperty(hidden=true, description="Whether the add and setLayout methods are forwarded") protected void setRootPaneCheckingEnabled(boolean enabled)Sets whether calls toadd
andsetLayout
are forwarded to thecontentPane
.- Parameters:
enabled
- true ifadd
andsetLayout
are forwarded, false if they should operate directly on theJWindow
.- See Also:
addImpl(java.awt.Component, java.lang.Object, int)
,setLayout(java.awt.LayoutManager)
,isRootPaneCheckingEnabled()
,RootPaneContainer
-
addImpl
Adds the specified childComponent
. This method is overridden to conditionally forward calls to thecontentPane
. By default, children are added to thecontentPane
instead of the frame, refer toRootPaneContainer
for details.- Overrides:
addImpl
in classContainer
- Parameters:
comp
- the component to be enhancedconstraints
- the constraints to be respectedindex
- the index- Throws:
IllegalArgumentException
- ifindex
is invalidIllegalArgumentException
- if adding the container's parent to itselfIllegalArgumentException
- if adding a window to a container- See Also:
setRootPaneCheckingEnabled(boolean)
,RootPaneContainer
-
remove
Removes the specified component from the container. Ifcomp
is not therootPane
, this will forward the call to thecontentPane
. This will do nothing ifcomp
is not a child of theJWindow
orcontentPane
.- Overrides:
remove
in classContainer
- Parameters:
comp
- the component to be removed- Throws:
NullPointerException
- ifcomp
is null- See Also:
Container.add(java.awt.Component)
,RootPaneContainer
-
setLayout
Sets theLayoutManager
. Overridden to conditionally forward the call to thecontentPane
. Refer toRootPaneContainer
for more information.- Overrides:
setLayout
in classContainer
- Parameters:
manager
- theLayoutManager
- See Also:
setRootPaneCheckingEnabled(boolean)
,RootPaneContainer
-
getRootPane
@BeanProperty(bound=false, hidden=true, description="the RootPane object for this window.") public JRootPane getRootPane()Returns therootPane
object for this window.- Specified by:
getRootPane
in interfaceRootPaneContainer
- Returns:
- the
rootPane
property for this window - See Also:
setRootPane(javax.swing.JRootPane)
,RootPaneContainer.getRootPane()
-
setRootPane
Sets the newrootPane
object for this window. This method is called by the constructor.- Parameters:
root
- the newrootPane
property- See Also:
getRootPane()
-
getContentPane
Returns theContainer
which is thecontentPane
for this window.- Specified by:
getContentPane
in interfaceRootPaneContainer
- Returns:
- the
contentPane
property - See Also:
setContentPane(java.awt.Container)
,RootPaneContainer.getContentPane()
-
setContentPane
@BeanProperty(bound=false, hidden=true, description="The client area of the window where child components are normally inserted.") public void setContentPane(Container contentPane)Sets thecontentPane
property for this window. This method is called by the constructor.- Specified by:
setContentPane
in interfaceRootPaneContainer
- Parameters:
contentPane
- the newcontentPane
- Throws:
IllegalComponentStateException
- (a runtime exception) if the content pane parameter isnull
- See Also:
getContentPane()
,RootPaneContainer.setContentPane(java.awt.Container)
-
getLayeredPane
Returns thelayeredPane
object for this window.- Specified by:
getLayeredPane
in interfaceRootPaneContainer
- Returns:
- the
layeredPane
property - See Also:
setLayeredPane(javax.swing.JLayeredPane)
,RootPaneContainer.getLayeredPane()
-
setLayeredPane
@BeanProperty(bound=false, hidden=true, description="The pane which holds the various window layers.") public void setLayeredPane(JLayeredPane layeredPane)Sets thelayeredPane
property. This method is called by the constructor.- Specified by:
setLayeredPane
in interfaceRootPaneContainer
- Parameters:
layeredPane
- the newlayeredPane
object- Throws:
IllegalComponentStateException
- (a runtime exception) if the content pane parameter isnull
- See Also:
getLayeredPane()
,RootPaneContainer.setLayeredPane(javax.swing.JLayeredPane)
-
getGlassPane
Returns theglassPane Component
for this window.- Specified by:
getGlassPane
in interfaceRootPaneContainer
- Returns:
- the
glassPane
property - See Also:
setGlassPane(java.awt.Component)
,RootPaneContainer.getGlassPane()
-
setGlassPane
@BeanProperty(bound=false, hidden=true, description="A transparent pane used for menu rendering.") public void setGlassPane(Component glassPane)Sets theglassPane
property. This method is called by the constructor.- Specified by:
setGlassPane
in interfaceRootPaneContainer
- Parameters:
glassPane
- theglassPane
object for this window- See Also:
getGlassPane()
,RootPaneContainer.setGlassPane(java.awt.Component)
-
getGraphics
Creates a graphics context for this component. This method will returnnull
if this component is currently not displayable.- Overrides:
getGraphics
in classComponent
- Returns:
- a graphics context for this component, or
null
if it has none - Since:
- 1.6
- See Also:
Component.paint(java.awt.Graphics)
-
repaint
public void repaint(long time, int x, int y, int width, int height)Repaints the specified rectangle of this component withintime
milliseconds. Refer toRepaintManager
for details on how the repaint is handled.- Overrides:
repaint
in classComponent
- Parameters:
time
- maximum time in milliseconds before updatex
- the x coordinatey
- the y coordinatewidth
- the widthheight
- the height- Since:
- 1.6
- See Also:
RepaintManager
-
paramString
Returns a string representation of thisJWindow
. 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:
- a string representation of this
JWindow
-
getAccessibleContext
Gets the AccessibleContext associated with this JWindow. For JWindows, the AccessibleContext takes the form of an AccessibleJWindow. A new AccessibleJWindow instance is created if necessary.- Specified by:
getAccessibleContext
in interfaceAccessible
- Overrides:
getAccessibleContext
in classWindow
- Returns:
- an AccessibleJWindow that serves as the AccessibleContext of this JWindow
-