- All Implemented Interfaces:
ImageObserver,MenuContainer,Serializable,Accessible,RootPaneContainer
JPanel subclass that has a drop shadow border and
that provides a header with icon, title and tool bar.
This class can be used to replace the JInternalFrame,
for use outside of a JDesktopPane.
The SimpleInternalFrame is less flexible but often
more usable; it avoids overlapping windows and scales well
up to IDE size.
Several customers have reported that they and their clients feel
much better with both the appearance and the UI feel.
The SimpleInternalFrame provides the following bound properties: frameIcon, title, toolBar, content, selected.
By default the SimpleInternalFrame is in selected state. If you don't do anything, multiple simple internal frames will be displayed as selected.
- Since:
- 1.0.1
- Version:
- "1.0.14" - b202111241200L
- Author:
- Julien SEINTURIER - Université de Toulon / CNRS LIS umr 7020 - github.com/jorigin/jcommon (contact@jorigin.org)
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class javax.swing.JPanel
JPanel.AccessibleJPanelNested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponentNested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainerNested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy -
Field Summary
Fields inherited from class javax.swing.JComponent
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOWFields inherited from class java.awt.Component
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENTFields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH -
Constructor Summary
ConstructorsConstructorDescriptionJPanelFrame(String title) Constructs a JPanelFrame with the specified title.JPanelFrame(String title, JToolBar bar, JComponent content) Constructs a JPanelFrame with the specified title, tool bar, and content panel.JPanelFrame(Icon icon, String title) Constructs a JPanelFrame with the specified icon, and title.JPanelFrame(Icon icon, String title, JToolBar bar, JComponent content) Constructs a JPanelFrame with the specified icon, title, tool bar, and content panel. -
Method Summary
Modifier and TypeMethodDescriptionAppends the specified component to the end of this container.Adds the specified component to this container at the given position.voidAdds the specified component to this container with the specified constraints to the end of this conainer.voidAdds the specified component to this container with the specified constraints at the specified index.protected voidAdds the specified child Component.protected voidCalled by the constructor methods to create the default rootPane.Returns the content -null, if none has been set.Returns the contentPane.intA convenience method for getting default close operation.Returns the frame's icon.Returns the glassPane.protected ColorDetermines and answers the header's background color.Get the image that is displayed in the panel.Returns the menubar set on this panel frame.Returns the layeredPane.Return this component's single JRootPane child.protected ColorgetTextForeground(boolean isSelected) Determines and answers the header's text foreground color.getTitle()Returns the frame's title text.Returns the currentJToolBar,nullif none has been set before.protected booleanReturns whether calls to add and setLayout are forwarded to the contentPane.booleanAnswers if the panel is currently selected (or in other words active) or not.protected voidProcesses window events occurring on this component.voidremove(int index) Removes the component, specified by index, from this container.voidRemoves the specified component from the container.voidRemoves all the components from this container.voidsetContentPane(Container contentPane) The "contentPane" is the primary container for application specific components.voidsetDefaultCloseOperation(int operation) A convenience method for setting default close operation.voidsetFrameIcon(Icon newIcon) Sets a new frame icon.voidsetGlassPane(Component glassPane) The glassPane is always the first child of the rootPane and the rootPanes layout manager ensures that it's always as big as the rootPane.voidsetIconImage(Image image) Sets the image to be displayed in the minimized icon for this frame.voidsetJMenuBar(JMenuBar menu) Sets the menubar for this panel frame.voidsetLayeredPane(JLayeredPane layeredPane) A Container that manages the contentPane and in some cases a menu bar.protected voidsetRootPaneCheckingEnabled(boolean enabled) Sets whether calls to add and setLayout are forwarded to the contentPane.voidsetSelected(boolean newValue) This panel draws its title bar differently if it is selected, which may be used to indicate to the user that this panel has the focus, or should get more attention than other simple internal frames.voidSets a new title text.voidsetToolBar(JToolBar newToolBar) Sets a newJToolBarin the header.voidJust calls paint(g).voidupdateUI()Updates the UI.Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUIMethods inherited from class javax.swing.JComponent
addAncestorListener, 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, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, 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, unregisterKeyboardActionMethods inherited from class java.awt.Container
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, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTreeMethods inherited from class java.awt.Component
action, 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, 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
-
Constructor Details
-
JPanelFrame
Constructs a JPanelFrame with the specified title. The title is intended to be non-blank, or in other words should contain non-space characters.- Parameters:
title- the initial title
-
JPanelFrame
Constructs a JPanelFrame with the specified icon, and title.- Parameters:
icon- the initial icontitle- the initial title
-
JPanelFrame
Constructs a JPanelFrame with the specified title, tool bar, and content panel.- Parameters:
title- the initial titlebar- the initial tool barcontent- the initial content pane
-
JPanelFrame
Constructs a JPanelFrame with the specified icon, title, tool bar, and content panel.- Parameters:
icon- the initial icontitle- the initial titlebar- the initial tool barcontent- the initial content pane
-
-
Method Details
-
getRootPane
Return this component's single JRootPane child. A conventional implementation of this interface will have all of the other methods indirect through this one. The rootPane has two children: the glassPane and the layeredPane.- Specified by:
getRootPanein interfaceRootPaneContainer- Overrides:
getRootPanein classJComponent- Returns:
- this components single JRootPane child.
- See Also:
-
setContentPane
The "contentPane" is the primary container for application specific components. Applications should add children to the contentPane, set its layout manager, and so on.The contentPane my not be null.
Generally implemented with
getRootPane().setContentPane(contentPane);- Specified by:
setContentPanein interfaceRootPaneContainer- Parameters:
contentPane- the Container to use for the contents of this JRootPane- Throws:
IllegalComponentStateException- (a runtime exception) if the content pane parameter is null- See Also:
-
getContentPane
Returns the contentPane.- Specified by:
getContentPanein interfaceRootPaneContainer- Returns:
- the value of the contentPane property.
- See Also:
-
setLayeredPane
A Container that manages the contentPane and in some cases a menu bar. The layeredPane can be used by descendants that want to add a child to the RootPaneContainer that isn't layout managed. For example an internal dialog or a drag and drop effect component.The layeredPane may not be null.
Generally implemented with
getRootPane().setLayeredPane(layeredPane);- Specified by:
setLayeredPanein interfaceRootPaneContainer- Throws:
IllegalComponentStateException- (a runtime exception) if the layered pane parameter is null- See Also:
-
getLayeredPane
Returns the layeredPane.- Specified by:
getLayeredPanein interfaceRootPaneContainer- Returns:
- the value of the layeredPane property.
- See Also:
-
setGlassPane
The glassPane is always the first child of the rootPane and the rootPanes layout manager ensures that it's always as big as the rootPane. By default it's transparent and not visible. It can be used to temporarily grab all keyboard and mouse input by adding listeners and then making it visible. by default it's not visible.The glassPane may not be null.
Generally implemented with
getRootPane().setGlassPane(glassPane);- Specified by:
setGlassPanein interfaceRootPaneContainer- See Also:
-
getGlassPane
Returns the glassPane.- Specified by:
getGlassPanein interfaceRootPaneContainer- Returns:
- the value of the glassPane property.
- See Also:
-
add
Appends the specified component to the end of this container. This is a convenience method for addImpl(java.awt.Component, java.lang.Object, int).
Note: If a component has been added to a container that has been displayed, validate must be called on that container to display the new component. If multiple components are being added, you can improve efficiency by calling validate only once, after all the components have been added. -
add
Adds the specified component to this container at the given position. This is a convenience method for addImpl(java.awt.Component, java.lang.Object, int).
Note: If a component has been added to a container that has been displayed, validate must be called on that container to display the new component. If multiple components are being added, you can improve efficiency by calling validate only once, after all the components have been added. -
add
Adds the specified component to this container with the specified constraints to the end of this conainer. Also notifies the layout manager to add the component to the this container's layout using the specified constraints object. This is a convenience method for addImpl(java.awt.Component, java.lang.Object, int).
Note: If a component has been added to a container that has been displayed, validate must be called on that container to display the new component. If multiple components are being added, you can improve efficiency by calling validate only once, after all the components have been added. -
add
Adds the specified component to this container with the specified constraints at the specified index. Also notifies the layout manager to add the component to the this container's layout using the specified constraints object. This is a convenience method for addImpl(java.awt.Component, java.lang.Object, int).
Note: If a component has been added to a container that has been displayed, validate must be called on that container to display the new component. If multiple components are being added, you can improve efficiency by calling validate only once, after all the components have been added. -
remove
public void remove(int index) Removes the component, specified by index, from this container. This method also notifies the layout manager to remove the component from this container's layout via the removeLayoutComponent method. -
removeAll
public void removeAll()Removes all the components from this container. This method also notifies the layout manager to remove the components from this container's layout via the removeLayoutComponent method. -
createRootPane
protected void createRootPane()Called by the constructor methods to create the default rootPane. -
addImpl
Adds the specified child Component. This method is overridden to conditionally forwad calls to the contentPane. By default, children are added to the contentPane instead of the frame, refer to RootPaneContainer for details. -
setJMenuBar
Sets the menubar for this panel frame.- Parameters:
menu- JMenuBar the menubar being placed in the frame- See Also:
-
getJMenuBar
Returns the menubar set on this panel frame.- Returns:
- JMenuBar the menubar for this frame
- See Also:
-
setRootPaneCheckingEnabled
protected void setRootPaneCheckingEnabled(boolean enabled) Sets whether calls to add and setLayout are forwarded to the contentPane.- Parameters:
enabled- boolean true if add and setLayout are forwarded, false if they should operate directly on the JPanelFrame.- See Also:
-
isRootPaneCheckingEnabled
protected boolean isRootPaneCheckingEnabled()Returns whether calls to add and setLayout are forwarded to the contentPane.- Returns:
- boolean true if add and setLayout are fowarded; false otherwise
- See Also:
-
processWindowEvent
Processes window events occurring on this component. Hides the window or disposes of it, as specified by the setting of the defaultCloseOperation property.- Parameters:
e- the window event
-
remove
Removes the specified component from the container. If comp is not the rootPane, this will forward the call to the contentPane. This will do nothing if comp is not a child of the JFrame or contentPane. -
setDefaultCloseOperation
public void setDefaultCloseOperation(int operation) A convenience method for setting default close operation.- Parameters:
operation- the operation processed. By default this method does nothing.- See Also:
-
getDefaultCloseOperation
public int getDefaultCloseOperation()A convenience method for getting default close operation. By default this method return 0.- Returns:
- the default close operation.
-
update
Just calls paint(g). This method was overridden to prevent an unnecessary call to clear the background.- Overrides:
updatein classJComponent- Parameters:
g- the Graphics context in which to paint- See Also:
-
setIconImage
Sets the image to be displayed in the minimized icon for this frame. Not all platforms support the concept of minimizing a window.- Parameters:
image- the icon image to be displayed. If this parameter is null then the icon image is set to the default image, which may vary with platform.- See Also:
-
getIconImage
Get the image that is displayed in the panel.- Returns:
- the icon image that is displayed.
-
getFrameIcon
Returns the frame's icon.- Returns:
- the frame's icon
-
setFrameIcon
Sets a new frame icon.- Parameters:
newIcon- the icon to be set
-
getTitle
Returns the frame's title text.- Returns:
- String the current title text
-
setTitle
Sets a new title text.- Parameters:
newText- the title text tp be set
-
getToolBar
Returns the currentJToolBar,nullif none has been set before.- Returns:
- the current toolbar - if any
-
setToolBar
Sets a newJToolBarin the header.- Parameters:
newToolBar- the tool bar to be set in the header
-
getContent
Returns the content -null, if none has been set.- Returns:
- the current content
-
isSelected
public boolean isSelected()Answers if the panel is currently selected (or in other words active) or not. In the selected state, the header background will be rendered differently.- Returns:
- boolean a boolean, where true means the frame is selected (currently active) and false means it is not
-
setSelected
public void setSelected(boolean newValue) This panel draws its title bar differently if it is selected, which may be used to indicate to the user that this panel has the focus, or should get more attention than other simple internal frames.- Parameters:
newValue- a boolean, where true means the frame is selected (currently active) and false means it is not
-
updateUI
public void updateUI()Updates the UI. In addition to the superclass behavior, we need to update the header component. -
getTextForeground
Determines and answers the header's text foreground color. Tries to lookup a special color from the L&F. In case it is absent, it uses the standard internal frame forground.- Parameters:
isSelected- true to lookup the active color, false for the inactive- Returns:
- the color of the foreground text
-
getHeaderBackground
Determines and answers the header's background color. Tries to lookup a special color from the L&F. In case it is absent, it uses the standard internal frame background.- Returns:
- the color of the header's background
-