is new.
java.lang.Objectjava.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JLayeredPane
javax.swing.JDesktopPane
public class JDesktopPane
A container used to create a multiple-document interface or a virtual desktop. You create 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 TM has been added to the java.beans package. Please see XMLEncoder .
| Nested Class Summary | |
|---|---|
| protected class |
JDesktopPane.AccessibleJDesktopPane
This class implements accessibility support for the JDesktopPane class. |
| Nested classes/interfaces inherited from class javax.swing. JLayeredPane |
|---|
| JLayeredPane.AccessibleJLayeredPane |
| Nested classes/interfaces inherited from class javax.swing. JComponent |
|---|
| JComponent.AccessibleJComponent |
| Nested classes/interfaces inherited from class java.awt. Container |
|---|
| Container.AccessibleAWTContainer |
| Nested classes/interfaces inherited from class java.awt. Component |
|---|
| Component.AccessibleAWTComponent , Component.BaselineResizeBehavior , Component.BltBufferStrategy , Component.FlipBufferStrategy |
| Field Summary | |
|---|---|
| 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. |
| Fields inherited from class javax.swing. JLayeredPane |
|---|
| DEFAULT_LAYER , DRAG_LAYER , FRAME_CONTENT_LAYER , LAYER_PROPERTY , MODAL_LAYER , PALETTE_LAYER , POPUP_LAYER |
| Fields inherited from class javax.swing. JComponent |
|---|
| accessibleContext , listenerList , TOOL_TIP_TEXT_KEY , ui , UNDEFINED_CONDITION , WHEN_ANCESTOR_OF_FOCUSED_COMPONENT , WHEN_FOCUSED , WHEN_IN_FOCUSED_WINDOW |
| Fields inherited from class java.awt. Component |
|---|
| BOTTOM_ALIGNMENT , CENTER_ALIGNMENT , LEFT_ALIGNMENT , RIGHT_ALIGNMENT , TOP_ALIGNMENT |
| Fields inherited from interface java.awt.image. ImageObserver |
|---|
| ABORT , ALLBITS , ERROR , FRAMEBITS , HEIGHT , PROPERTIES , SOMEBITS , WIDTH |
| Constructor Summary | |
|---|---|
|
JDesktopPane
() Creates a new JDesktopPane. |
|
| Method Summary | |
|---|---|
protected void
|
addImpl
(
Component
comp,
Object
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
(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
d) 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
f) Sets the currently active JInternalFrame in this JDesktopPane. |
| void |
setUI
(
DesktopPaneUI
ui) Sets the L&F object that renders this component. |
| void |
updateUI
() Notification from the UIManager that the L&F has changed. |
| Methods inherited from class javax.swing. JLayeredPane |
|---|
|
| Methods inherited from class java.lang. Object |
|---|
| clone , equals , finalize , getClass , hashCode , notify , notifyAll , wait , wait , wait |
| Field Detail |
|---|
public static final int LIVE_DRAG_MODE
public static final int OUTLINE_DRAG_MODE
| Constructor Detail |
|---|
public JDesktopPane()
| Method Detail |
|---|
public DesktopPaneUI getUI()
public void setUI(DesktopPaneUI ui)
public void setDragMode(int dragMode)
Since:
1.3
public int getDragMode()
Since:
1.3
public DesktopManager getDesktopManager()
public void setDesktopManager(DesktopManager d)
public void updateUI()
public String getUIClassID()
public JInternalFrame[] getAllFrames()
public JInternalFrame getSelectedFrame()
public void setSelectedFrame(JInternalFrame f)
public JInternalFrame[] getAllFramesInLayer(int layer)
selectFrame
public
JInternalFrame
selectFrame
(boolean forward)
Selects the next JInternalFrame in this desktop pane.
Parameters:
forward - a boolean indicating which direction to select in; true for forward, false for backward
Returns:
the JInternalFrame that was selected or null if nothing was selected
Since:
1.6
addImpl
protected void
addImpl
(
Component
comp,
Object
constraints, int index)
Adds 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 the 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.addLayoutComponent(Component,Object)
is invoked on it. If the current layout manager does not implement LayoutManager2, and constraints is a String, then
LayoutManager.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)
Overrides:
addImpl
in class
JLayeredPane
Parameters:
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
Since:
1.6
See Also:
Container.add(Component)
,
Container.add(Component, int)
,
Container.add(Component, java.lang.Object)
,
LayoutManager
,
LayoutManager2
remove
public void
remove
(int index)
Remove the indexed component from this pane. This is the absolute index, ignoring layers.
Overrides:
remove
in class
JLayeredPane
Parameters:
index - an int specifying the component to remove
Since:
1.6
See Also:
JLayeredPane.getIndexOf(java.awt.Component)
removeAll
public void
removeAll
()
Removes all the components from this container.
Overrides:
removeAll
in class
JLayeredPane
Since:
1.6
See Also:
Container.add(java.awt.Component)
,
Container.remove(int)
setComponentZOrder
public void
setComponentZOrder
(
Component
comp, int index)
Moves 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 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.
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:
setComponentZOrder
in 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:
Container.getComponentZOrder(java.awt.Component)
protected String paramString()
public AccessibleContext getAccessibleContext()