Class JDesktopPane
- All Implemented Interfaces:
- ImageObserver,- MenuContainer,- Serializable,- 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.
- Since:
- 1.2
- See Also:
- 
Nested Class SummaryNested ClassesModifier and TypeClassDescriptionprotected classThis class implements accessibility support for theJDesktopPaneclass.Nested classes/interfaces declared in class javax.swing.JLayeredPaneJLayeredPane.AccessibleJLayeredPaneNested classes/interfaces declared in class javax.swing.JComponentJComponent.AccessibleJComponentNested classes/interfaces declared in class java.awt.ContainerContainer.AccessibleAWTContainerNested classes/interfaces declared in class java.awt.ComponentComponent.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
- 
Field SummaryFieldsModifier and TypeFieldDescriptionstatic final intIndicates that the entire contents of the item being dragged should appear inside the desktop pane.static final intIndicates that an outline only of the item being dragged should appear inside the desktop pane.Fields declared in class javax.swing.JLayeredPaneDEFAULT_LAYER, DRAG_LAYER, FRAME_CONTENT_LAYER, LAYER_PROPERTY, MODAL_LAYER, PALETTE_LAYER, POPUP_LAYERFields declared in class javax.swing.JComponentlistenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOWFields declared in class java.awt.ComponentaccessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENTFields declared in interface java.awt.image.ImageObserverABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
- 
Constructor SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionprotected voidAdds the specified component to this container at the specified index.Gets theAccessibleContextassociated with thisJDesktopPane.Returns allJInternalFramescurrently displayed in the desktop.getAllFramesInLayer(int layer) Returns allJInternalFramescurrently displayed in the specified layer of the desktop.Returns theDesktopMangerthat handles desktop-specific UI actions.intGets the current "dragging style" used by the desktop pane.Returns the currently activeJInternalFramein thisJDesktopPane, ornullif noJInternalFrameis currently active.getUI()Returns the L&F object that renders this component.Returns the name of the L&F class that renders this component.protected StringReturns a string representation of thisJDesktopPane.voidremove(int index) Remove the indexed component from this pane.voidRemoves all the components from this container.selectFrame(boolean forward) Selects the nextJInternalFramein this desktop pane.voidsetComponentZOrder(Component comp, int index) Moves the specified component to the specified z-order index in the container.voidSets theDesktopMangerthat will handle desktop-specific UI actions.voidsetDragMode(int dragMode) Sets the "dragging style" used by the desktop pane.voidSets the currently activeJInternalFramein thisJDesktopPane.voidsetUI(DesktopPaneUI ui) Sets the L&F object that renders this component.voidupdateUI()Notification from theUIManagerthat the L&F has changed.Methods declared in class javax.swing.JLayeredPanegetComponentCountInLayer, getComponentsInLayer, getComponentToLayer, getIndexOf, getLayer, getLayer, getLayeredPaneAbove, getObjectForLayer, getPosition, highestLayer, insertIndexForLayer, isOptimizedDrawingEnabled, lowestLayer, moveToBack, moveToFront, paint, putLayer, setLayer, setLayer, setPositionMethods declared in class javax.swing.JComponentaddAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, 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, updateMethods declared in class java.awt.Containeradd, 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, remove, removeContainerListener, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTreeMethods declared in class java.awt.Componentaction, 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, 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, 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, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
- 
Field Details- 
LIVE_DRAG_MODEpublic static final int LIVE_DRAG_MODEIndicates that the entire contents of the item being dragged should appear inside the desktop pane.- See Also:
 
- 
OUTLINE_DRAG_MODEpublic static final int OUTLINE_DRAG_MODEIndicates that an outline only of the item being dragged should appear inside the desktop pane.- See Also:
 
 
- 
- 
Constructor Details- 
JDesktopPanepublic JDesktopPane()Creates a newJDesktopPane.
 
- 
- 
Method Details- 
getUIReturns the L&F object that renders this component.- Overrides:
- getUIin class- JComponent
- Returns:
- the DesktopPaneUIobject that renders this component
 
- 
setUI@BeanProperty(hidden=true, visualUpdate=true, description="The UI object that implements the Component's LookAndFeel.") public void setUI(DesktopPaneUI ui) Sets the L&F object that renders this component.- Parameters:
- ui- the DesktopPaneUI L&F object
- See Also:
 
- 
setDragMode@BeanProperty(enumerationValues={"JDesktopPane.LIVE_DRAG_MODE","JDesktopPane.OUTLINE_DRAG_MODE"}, description="Dragging style for internal frame children.") public void setDragMode(int dragMode) Sets the "dragging style" used by the desktop pane. You may want to change to one mode or another for performance or aesthetic reasons.- Parameters:
- dragMode- the style of drag to use for items in the Desktop
- Since:
- 1.3
- See Also:
 
- 
getDragModepublic int getDragMode()Gets the current "dragging style" used by the desktop pane.- Returns:
- either Live_DRAG_MODEorOUTLINE_DRAG_MODE
- Since:
- 1.3
- See Also:
 
- 
getDesktopManagerReturns theDesktopMangerthat handles desktop-specific UI actions.- Returns:
- the DesktopMangerthat handles desktop-specific UI actions
 
- 
setDesktopManager@BeanProperty(description="Desktop manager to handle the internal frames in the desktop pane.") public void setDesktopManager(DesktopManager d) Sets theDesktopMangerthat will handle desktop-specific UI actions. This may be overridden byLookAndFeel.- Parameters:
- d- the- DesktopManagerto use
 
- 
updateUIpublic void updateUI()Notification from theUIManagerthat the L&F has changed. Replaces the current UI object with the latest version from theUIManager.- Overrides:
- updateUIin class- JComponent
- See Also:
 
- 
getUIClassIDReturns the name of the L&F class that renders this component.- Overrides:
- getUIClassIDin class- JComponent
- Returns:
- the string "DesktopPaneUI"
- See Also:
 
- 
getAllFramesReturns allJInternalFramescurrently displayed in the desktop. Returns iconified frames as well as expanded frames.- Returns:
- an array of JInternalFrameobjects
 
- 
getSelectedFrameReturns the currently activeJInternalFramein thisJDesktopPane, ornullif noJInternalFrameis currently active.- Returns:
- the currently active JInternalFrameornull
- Since:
- 1.3
 
- 
setSelectedFrameSets the currently activeJInternalFramein thisJDesktopPane. 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.- Parameters:
- f- the internal frame that's currently selected
- Since:
- 1.3
- See Also:
 
- 
getAllFramesInLayerReturns allJInternalFramescurrently displayed in the specified layer of the desktop. Returns iconified frames as well expanded frames.- Parameters:
- layer- an int specifying the desktop layer
- Returns:
- an array of JInternalFrameobjects
- See Also:
 
- 
selectFrameSelects the nextJInternalFramein this desktop pane.- Parameters:
- forward- a boolean indicating which direction to select in;- truefor forward,- falsefor backward
- Returns:
- the JInternalFrame that was selected or nullif nothing was selected
- Since:
- 1.6
 
- 
addImplAdds the specified component to this container at the specified index. This method also notifies the layout manager to add the component to this container's layout using the specified constraints object via theaddLayoutComponentmethod.The constraints are defined by the particular layout manager being used. For example, the BorderLayoutclass defines five constraints:BorderLayout.NORTH,BorderLayout.SOUTH,BorderLayout.EAST,BorderLayout.WEST, andBorderLayout.CENTER.The GridBagLayoutclass requires aGridBagConstraintsobject. Failure to pass the correct type of constraints object results in anIllegalArgumentException.If the current layout manager implements LayoutManager2, thenLayoutManager2.addLayoutComponent(Component,Object)is invoked on it. If the current layout manager does not implementLayoutManager2, and constraints is aString, thenLayoutManager.addLayoutComponent(String,Component)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. 
- 
removepublic void remove(int index) Remove the indexed component from this pane. This is the absolute index, ignoring layers.- Overrides:
- removein class- JLayeredPane
- Parameters:
- index- an int specifying the component to remove
- Since:
- 1.6
- See Also:
 
- 
removeAllpublic void removeAll()Removes all the components from this container.- Overrides:
- removeAllin class- JLayeredPane
- Since:
- 1.6
- See Also:
 
- 
setComponentZOrderMoves the specified component to the specified z-order index in the container. The z-order determines the order that components are painted; the component with the highest z-order paints first and the component with the lowest z-order paints last. Where components overlap, the component with the lower z-order paints over the component with the higher z-order.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 callremoveNotifyon 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- Containercomponents.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.- Overrides:
- setComponentZOrderin class- Container
- Parameters:
- comp- the component to be moved
- index- the position in the container's list to insert the component, where- getComponentCount()appends to the end
- Since:
- 1.6
- See Also:
 
- 
paramStringReturns a string representation of thisJDesktopPane. 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:
- paramStringin class- JLayeredPane
- Returns:
- a string representation of this JDesktopPane
 
- 
getAccessibleContextGets theAccessibleContextassociated with thisJDesktopPane. For desktop panes, theAccessibleContexttakes the form of anAccessibleJDesktopPane. A newAccessibleJDesktopPaneinstance is created if necessary.- Specified by:
- getAccessibleContextin interface- Accessible
- Overrides:
- getAccessibleContextin class- JLayeredPane
- Returns:
- an AccessibleJDesktopPanethat serves as theAccessibleContextof thisJDesktopPane
 
 
-