java.lang.Object
javax.swing.DefaultDesktopManager
- All Implemented Interfaces:
Serializable,DesktopManager
This is an implementation of the
DesktopManager.
It currently implements the basic behaviors for managing
JInternalFrames in an arbitrary parent.
JInternalFrames that are not children of a
JDesktop will use this component
to handle their desktop-like actions.
This class provides a policy for the various JInternalFrame methods, it is not meant to be called directly rather the various JInternalFrame methods will call into the DesktopManager.
- Since:
- 1.2
- See Also:
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidThis will activate f moving it to the front.voidThis method is normally called when the user has indicated that they will begin dragging a component around.voidbeginResizingFrame(JComponent f, int direction) This method is normally called when the user has indicated that they will begin resizing the frame.voidRemoves the frame, and, if necessary, thedesktopIcon, from its parent.voidGenerally, indicate that this frame has lost focus.voidRemoves the desktopIcon from its parent and adds its frame to the parent.voiddragFrame(JComponent f, int newX, int newY) Moves the visible location of the frame being dragged to the location specified.voidThis method signals the end of the dragging session.voidThis method signals the end of the resize session.protected RectangleTheiconifyFrame()code calls this to determine the proper bounds for the desktopIcon.protected RectangleGets the normal bounds of the component prior to the component being maximized.voidRemoves the frame from its parent and adds itsdesktopIconto the parent.voidResizes the frame to fill its parents bounds.voidRestores the frame back to its size and position prior to amaximizeFramecall.voidNormally this method will not be called.protected voidConvenience method to remove the desktopIcon of f is necessary.voidresizeFrame(JComponent f, int newX, int newY, int newWidth, int newHeight) CallssetBoundsForFramewith the new values.voidsetBoundsForFrame(JComponent f, int newX, int newY, int newWidth, int newHeight) This moves theJComponentand repaints the damaged areas.protected voidStores the bounds of the component just before a maximize call.protected voidsetWasIcon(JInternalFrame f, Boolean value) Sets that the component has been iconized and the bounds of thedesktopIconare valid.protected booleanReturnstrueif the component has been iconized and the bounds of thedesktopIconare valid, otherwise returnsfalse.
-
Constructor Details
-
DefaultDesktopManager
public DefaultDesktopManager()Constructs aDefaultDesktopManager.
-
-
Method Details
-
openFrame
Normally this method will not be called. If it is, it tries to determine the appropriate parent from the desktopIcon of the frame. Will remove the desktopIcon from its parent if it successfully adds the frame.- Specified by:
openFramein interfaceDesktopManager- Parameters:
f- theJInternalFrameto be displayed
-
closeFrame
Removes the frame, and, if necessary, thedesktopIcon, from its parent.- Specified by:
closeFramein interfaceDesktopManager- Parameters:
f- theJInternalFrameto be removed
-
maximizeFrame
Resizes the frame to fill its parents bounds.- Specified by:
maximizeFramein interfaceDesktopManager- Parameters:
f- the frame to be resized
-
minimizeFrame
Restores the frame back to its size and position prior to amaximizeFramecall.- Specified by:
minimizeFramein interfaceDesktopManager- Parameters:
f- theJInternalFrameto be restored
-
iconifyFrame
Removes the frame from its parent and adds itsdesktopIconto the parent.- Specified by:
iconifyFramein interfaceDesktopManager- Parameters:
f- theJInternalFrameto be iconified
-
deiconifyFrame
Removes the desktopIcon from its parent and adds its frame to the parent.- Specified by:
deiconifyFramein interfaceDesktopManager- Parameters:
f- theJInternalFrameto be de-iconified
-
activateFrame
This will activate f moving it to the front. It will set the current active frame's (if any)IS_SELECTED_PROPERTYtofalse. There can be only one active frame across all Layers.- Specified by:
activateFramein interfaceDesktopManager- Parameters:
f- theJInternalFrameto be activated
-
deactivateFrame
Description copied from interface:DesktopManagerGenerally, indicate that this frame has lost focus. This is usually called after the JInternalFrame's IS_SELECTED_PROPERTY has been set to false.- Specified by:
deactivateFramein interfaceDesktopManager- Parameters:
f- theJInternalFrameto be deactivated
-
beginDraggingFrame
Description copied from interface:DesktopManagerThis method is normally called when the user has indicated that they will begin dragging a component around. This method should be called prior to any dragFrame() calls to allow the DesktopManager to prepare any necessary state. Normally f will be a JInternalFrame.- Specified by:
beginDraggingFramein interfaceDesktopManager- Parameters:
f- theJComponentbeing dragged
-
dragFrame
Moves the visible location of the frame being dragged to the location specified. The means by which this occurs can vary depending on the dragging algorithm being used. The actual logical location of the frame might not change untilendDraggingFrameis called.- Specified by:
dragFramein interfaceDesktopManager- Parameters:
f- theJComponentbeing draggednewX- the new x-coordinatenewY- the new y-coordinate
-
endDraggingFrame
Description copied from interface:DesktopManagerThis method signals the end of the dragging session. Any state maintained by the DesktopManager can be removed here. Normally f will be a JInternalFrame.- Specified by:
endDraggingFramein interfaceDesktopManager- Parameters:
f- theJComponentbeing dragged
-
beginResizingFrame
Description copied from interface:DesktopManagerThis method is normally called when the user has indicated that they will begin resizing the frame. This method should be called prior to any resizeFrame() calls to allow the DesktopManager to prepare any necessary state. Normally f will be a JInternalFrame.- Specified by:
beginResizingFramein interfaceDesktopManager- Parameters:
f- theJComponentbeing resizeddirection- the direction
-
resizeFrame
CallssetBoundsForFramewith the new values.- Specified by:
resizeFramein interfaceDesktopManager- Parameters:
f- the component to be resizednewX- the new x-coordinatenewY- the new y-coordinatenewWidth- the new widthnewHeight- the new height
-
endResizingFrame
Description copied from interface:DesktopManagerThis method signals the end of the resize session. Any state maintained by the DesktopManager can be removed here. Normally f will be a JInternalFrame.- Specified by:
endResizingFramein interfaceDesktopManager- Parameters:
f- theJComponentbeing resized
-
setBoundsForFrame
This moves theJComponentand repaints the damaged areas.- Specified by:
setBoundsForFramein interfaceDesktopManager- Parameters:
f- theJComponentbeing moved or resizednewX- the new x-coordinatenewY- the new y-coordinatenewWidth- the new widthnewHeight- the new height
-
removeIconFor
Convenience method to remove the desktopIcon of f is necessary.- Parameters:
f- theJInternalFramefor which to remove thedesktopIcon
-
getBoundsForIconOf
TheiconifyFrame()code calls this to determine the proper bounds for the desktopIcon.- Parameters:
f- theJInternalFrameof interest- Returns:
- a
Rectanglecontaining bounds for thedesktopIcon
-
setPreviousBounds
Stores the bounds of the component just before a maximize call.- Parameters:
f- the component about to be resizedr- the normal bounds to be saved away
-
getPreviousBounds
Gets the normal bounds of the component prior to the component being maximized.- Parameters:
f- theJInternalFrameof interest- Returns:
- the normal bounds of the component
-
setWasIcon
Sets that the component has been iconized and the bounds of thedesktopIconare valid.- Parameters:
f- theJInternalFrameof interestvalue- aBooleansignifying if component has been iconized
-
wasIcon
Returnstrueif the component has been iconized and the bounds of thedesktopIconare valid, otherwise returnsfalse.- Parameters:
f- theJInternalFrameof interest- Returns:
trueif the component has been iconized; otherwise returnsfalse
-