public class JDesktopPane extends JLayeredPaneimplements Accessible
JInternalFrame objects and add them to the
JDesktopPane.
JDesktopPane extends
JLayeredPane to manage the potentially overlapping internal frames. It also maintains a reference to an instance of
DesktopManager that is set by the UI class for the current look and feel (L&F). Note that
JDesktopPane does not support borders.
This class is normally used as the parent of JInternalFrames to provide a pluggable DesktopManager object to the JInternalFrames. The installUI of the L&F specific implementation is responsible for setting the desktopManager variable appropriately. When the parent of a JInternalFrame is a JDesktopPane, it should delegate most of its behavior to the desktopManager (closing, resizing, etc).
For further documentation and examples see How to Use Internal Frames, a section in The Java Tutorial.
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.
JInternalFrame,
JInternalFrame.JDesktopIcon,
DesktopManager
| Modifier and Type | Class and Description |
|---|---|
protected class |
JDesktopPane
This class implements accessibility support for the
JDesktopPane class.
|
JLayeredPane.AccessibleJLayeredPane JComponent.AccessibleJComponent Container.AccessibleAWTContainer Component.AccessibleAWTComponent , Component.BaselineResizeBehavior , Component.BltBufferStrategy , Component.FlipBufferStrategy | Modifier and Type | Field and Description |
|---|---|
static int |
LIVE_DRAG_MODE
Indicates that the entire contents of the item being dragged should appear inside the desktop pane.
|
static int |
OUTLINE_DRAG_MODE
Indicates that an outline only of the item being dragged should appear inside the desktop pane.
|
DEFAULT_LAYER, DRAG_LAYER, FRAME_CONTENT_LAYER, LAYER_PROPERTY, MODAL_LAYER, PALETTE_LAYER, POPUP_LAYERlistenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOWaccessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENTABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH| Constructor and Description |
|---|
JDesktopPane()
Creates a new
JDesktopPane.
|
| Modifier and Type | Method and Description |
|---|---|
protected void |
addImpl(Component
Adds the specified component to this container at the specified index.
|
AccessibleContext |
getAccessibleContext()
Gets the
AccessibleContext associated with this
JDesktopPane.
|
JInternalFrame |
getAllFrames()
Returns all
JInternalFrames currently displayed in the desktop.
|
JInternalFrame |
getAllFramesInLayer(int layer)
Returns all
JInternalFrames currently displayed in the specified layer of the desktop.
|
DesktopManager |
getDesktopManager()
Returns the
DesktopManger that handles desktop-specific UI actions.
|
int |
getDragMode()
Gets the current "dragging style" used by the desktop pane.
|
JInternalFrame |
getSelectedFrame()
Returns the currently active
JInternalFrame in this
JDesktopPane, or
null if no
JInternalFrame is currently active.
|
DesktopPaneUI |
getUI()
Returns the L&F object that renders this component.
|
String |
getUIClassID()
Returns the name of the L&F class that renders this component.
|
protected String |
paramString()
Returns a string representation of this
JDesktopPane.
|
void |
remove(Component
Removes the specified component from this container.
|
void |
remove(int index)
Remove the indexed component from this pane.
|
void |
removeAll()
Removes all the components from this container.
|
JInternalFrame |
selectFrame(boolean forward)
Selects the next
JInternalFrame in this desktop pane.
|
void |
setComponentZOrder(Component
Moves the specified component to the specified z-order index in the container.
|
void |
setDesktopManager(DesktopManager
Sets the
DesktopManger that will handle desktop-specific UI actions.
|
void |
setDragMode(int dragMode)
Sets the "dragging style" used by the desktop pane.
|
void |
setSelectedFrame(JInternalFrame
Sets the currently active
JInternalFrame in this
JDesktopPane.
|
void |
setUI(DesktopPaneUI
Sets the L&F object that renders this component.
|
void |
updateUI()
Notification from the
UIManager that the L&F has changed.
|
getComponentCountInLayer, getComponentsInLayer, getComponentToLayer, getIndexOf, getLayer, getLayer, getLayeredPaneAbove, getObjectForLayer, getPosition, highestLayer, insertIndexForLayer, isOptimizedDrawingEnabled, lowestLayer, moveToBack, moveToFront, paint, putLayer, setLayer, setLayer, setPositionaddAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, updateadd, add, add, add, add, addContainerListener, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, removeContainerListener, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTreeaction, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCyclepublic static final int LIVE_DRAG_MODE
OUTLINE_DRAG_MODE,
setDragMode(int),
Constant Field Values
public static final int OUTLINE_DRAG_MODE
LIVE_DRAG_MODE,
setDragMode(int),
Constant Field Values
public DesktopPaneUIgetUI()
DesktopPaneUI object that renders this component
public void setUI(DesktopPaneUIui)
ui - the DesktopPaneUI L&F object
UIDefaults.getUI(javax.swing.JComponent)
public void setDragMode(int dragMode)
dragMode - the style of drag to use for items in the Desktop
LIVE_DRAG_MODE,
OUTLINE_DRAG_MODE
public int getDragMode()
Live_DRAG_MODE or
OUTLINE_DRAG_MODE
setDragMode(int)
public DesktopManagergetDesktopManager()
DesktopManger that handles desktop-specific UI actions.
public void setDesktopManager(DesktopManagerd)
DesktopManger that will handle desktop-specific UI actions. This may be overridden by
LookAndFeel.
d - the
DesktopManager to use
public void updateUI()
UIManager that the L&F has changed. Replaces the current UI object with the latest version from the
UIManager.
updateUI in class
JComponent
JComponent.updateUI()
public StringgetUIClassID()
getUIClassID in class
JComponent
JComponent.getUIClassID() ,
UIDefaults.getUI(javax.swing.JComponent)
public JInternalFrame[] getAllFrames()
JInternalFrames currently displayed in the desktop. Returns iconified frames as well as expanded frames.
JInternalFrame objects
public JInternalFramegetSelectedFrame()
JInternalFrame in this
JDesktopPane, or
null if no
JInternalFrame is currently active.
JInternalFrame or
null
public void setSelectedFrame(JInternalFramef)
JInternalFrame in this
JDesktopPane. This method is used to bridge the package gap between JDesktopPane and the platform implementation code and should not be called directly. To visually select the frame the client must call JInternalFrame.setSelected(true) to activate the frame.
f - the internal frame that's currently selected
JInternalFrame.setSelected(boolean)
public JInternalFrame[] getAllFramesInLayer(int layer)
JInternalFrames currently displayed in the specified layer of the desktop. Returns iconified frames as well expanded frames.
layer - an int specifying the desktop layer
JInternalFrame objects
JLayeredPane
public void remove(Componentcomp)
removeLayoutComponent method.
This method changes layout-related information, and therefore, invalidates the component hierarchy. If the container has already been displayed, the hierarchy must be validated thereafter in order to reflect the changes.
remove in class
Container
comp - the component to be removed
Container.add(java.awt.Component) ,
Container.invalidate() ,
Container.validate() ,
Container.remove(int)
public JInternalFrameselectFrame(boolean forward)
JInternalFrame in this desktop pane.
forward - a boolean indicating which direction to select in;
true for forward,
false for backward
null if nothing was selected
protected void addImpl(Componentcomp, Object constraints, int index)
addLayoutComponent method.
The constraints are defined by the particular layout manager being used. For example, the BorderLayout class defines five constraints: BorderLayout.NORTH, BorderLayout.SOUTH, BorderLayout.EAST, BorderLayout.WEST, and BorderLayout.CENTER.
The GridBagLayout class requires a GridBagConstraints object. Failure to pass the correct type of constraints object results in an IllegalArgumentException.
If the current layout manager implements LayoutManager2, then LayoutManager2 is invoked on it. If the current layout manager does not implement LayoutManager2, and constraints is a String, then LayoutManager is invoked on it.
If the component is not an ancestor of this container and has a non-null parent, it is removed from its current parent before it is added to this container.
This is the method to override if a program needs to track every add request to a container as all other add methods defer to this one. An overriding method should usually include a call to the superclass's version of the method:
super.addImpl(comp, constraints, index)
This method changes layout-related information, and therefore, invalidates the component hierarchy. If the container has already been displayed, the hierarchy must be validated thereafter in order to display the added component.
addImpl in class
JLayeredPane
comp - the component to be added
constraints - an object expressing layout constraints for this component
index - the position in the container's list at which to insert the component, where
-1 means append to the end
Container.add(Component) ,
Container.add(Component, int) ,
Container.add(Component, java.lang.Object) ,
Container.invalidate() ,
LayoutManager,
LayoutManager2
public void remove(int index)
remove in class
JLayeredPane
index - an int specifying the component to remove
JLayeredPane.getIndexOf(java.awt.Component)
public void removeAll()
removeAll in class
JLayeredPane
Container.add(java.awt.Component) ,
Container.remove(int) ,
Container.invalidate()
public void setComponentZOrder(Componentcomp, int index)
If the component is a child of some other container, it is removed from that container before being added to this container. The important difference between this method and java.awt.Container.add(Component, int) is that this method doesn't call removeNotify on the component while removing it from its previous container unless necessary and when allowed by the underlying native windowing system. This way, if the component has the keyboard focus, it maintains the focus when moved to the new position.
This property is guaranteed to apply only to lightweight non-Container components.
This method changes layout-related information, and therefore, invalidates the component hierarchy.
Note: Not all platforms support changing the z-order of heavyweight components from one container into another without the call to removeNotify. There is no way to detect whether a platform supports this, so developers shouldn't make any assumptions.
setComponentZOrder in class
Container
comp - the component to be moved
index - the position in the container's list to insert the component, where
getComponentCount() appends to the end
Container.getComponentZOrder(java.awt.Component) ,
Container.invalidate()
protected StringparamString()
JDesktopPane. 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.
paramString in class
JLayeredPane
JDesktopPane
public AccessibleContextgetAccessibleContext()
AccessibleContext associated with this
JDesktopPane. For desktop panes, the
AccessibleContext takes the form of an
AccessibleJDesktopPane. A new
AccessibleJDesktopPane instance is created if necessary.
getAccessibleContext in interface
Accessible
getAccessibleContext in class
JLayeredPane
AccessibleJDesktopPane that serves as the
AccessibleContext of this
JDesktopPane