- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JPanel
-
- org.jorigin.gui.JPanelFrame
-
- All Implemented Interfaces:
ImageObserver,MenuContainer,Serializable,Accessible,RootPaneContainer
public class JPanelFrame extends JPanel implements RootPaneContainer
AJPanelsubclass 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 aJDesktopPane. TheSimpleInternalFrameis 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.13" - b202005081200L
- Author:
- Julien Seinturier - COMEX S.A. - contact@jorigin.org - https://github.com/jorigin/jeometry
- See Also:
JInternalFrame,JDesktopPane, Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class javax.swing.JPanel
JPanel.AccessibleJPanel
-
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
-
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_WINDOW
-
Fields inherited from class java.awt.Component
accessibleContext, 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
Constructors Constructor Description JPanelFrame(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
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Componentadd(Component comp)Appends the specified component to the end of this container.Componentadd(Component comp, int index)Adds the specified component to this container at the given position.voidadd(Component comp, Object constraints)Adds the specified component to this container with the specified constraints to the end of this conainer.voidadd(Component comp, Object constraints, int index)Adds the specified component to this container with the specified constraints at the specified index.protected voidaddImpl(Component comp, Object constraints, int index)Adds the specified child Component.protected voidcreateRootPane()Called by the constructor methods to create the default rootPane.ComponentgetContent()Returns the content -null, if none has been set.ContainergetContentPane()Returns the contentPane.intgetDefaultCloseOperation()A convenience method for getting default close operation.IcongetFrameIcon()Returns the frame's icon.ComponentgetGlassPane()Returns the glassPane.protected ColorgetHeaderBackground()Determines and answers the header's background color.ImagegetIconImage()Get the image that is displayed in the panel.JMenuBargetJMenuBar()Returns the menubar set on this panel frame.JLayeredPanegetLayeredPane()Returns the layeredPane.JRootPanegetRootPane()Return this component's single JRootPane child.protected ColorgetTextForeground(boolean isSelected)Determines and answers the header's text foreground color.StringgetTitle()Returns the frame's title text.JToolBargetToolBar()Returns the currentJToolBar,nullif none has been set before.protected booleanisRootPaneCheckingEnabled()Returns whether calls to add and setLayout are forwarded to the contentPane.booleanisSelected()Answers if the panel is currently selected (or in other words active) or not.protected voidprocessWindowEvent(WindowEvent e)Processes window events occurring on this component.voidremove(int index)Removes the component, specified by index, from this container.voidremove(Component comp)Removes the specified component from the container.voidremoveAll()Removes 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.voidsetTitle(String newText)Sets a new title text.voidsetToolBar(JToolBar newToolBar)Sets a newJToolBarin the header.voidupdate(Graphics g)Just calls paint(g).voidupdateUI()Updates the UI.-
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI
-
Methods 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, unregisterKeyboardAction
-
Methods 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, validateTree
-
Methods 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 Detail
-
JPanelFrame
public JPanelFrame(String title)
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
public JPanelFrame(Icon icon, String title)
Constructs a JPanelFrame with the specified icon, and title.- Parameters:
icon- the initial icontitle- the initial title
-
JPanelFrame
public JPanelFrame(String title, JToolBar bar, JComponent content)
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
public JPanelFrame(Icon icon, String title, JToolBar bar, JComponent content)
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 Detail
-
getRootPane
public JRootPane 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:
JRootPane
-
setContentPane
public void setContentPane(Container contentPane)
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:
JRootPane.getContentPane(),getContentPane()
-
getContentPane
public Container getContentPane()
Returns the contentPane.- Specified by:
getContentPanein interfaceRootPaneContainer- Returns:
- the value of the contentPane property.
- See Also:
setContentPane(java.awt.Container)
-
setLayeredPane
public void setLayeredPane(JLayeredPane layeredPane)
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(),JRootPane.getLayeredPane()
-
getLayeredPane
public JLayeredPane getLayeredPane()
Returns the layeredPane.- Specified by:
getLayeredPanein interfaceRootPaneContainer- Returns:
- the value of the layeredPane property.
- See Also:
setLayeredPane(javax.swing.JLayeredPane)
-
setGlassPane
public void setGlassPane(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. 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(),JRootPane.setGlassPane(java.awt.Component)
-
getGlassPane
public Component getGlassPane()
Returns the glassPane.- Specified by:
getGlassPanein interfaceRootPaneContainer- Returns:
- the value of the glassPane property.
- See Also:
setGlassPane(java.awt.Component)
-
add
public Component add(Component comp)
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.- Overrides:
addin classContainer- Parameters:
comp- Component the component to be added- Returns:
- Component the component argument
- See Also:
Container.validate(),JComponent.revalidate()
-
add
public Component add(Component comp, int index)
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.- Overrides:
addin classContainer- Parameters:
comp- Component the component to be addedindex- the position at which to insert the component, or -1 to append the component to the end- Returns:
- the added component.
- See Also:
remove(int),Container.validate(),JComponent.revalidate()
-
add
public void add(Component comp, Object constraints)
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.- Overrides:
addin classContainer- Parameters:
comp- Component the component to be addedconstraints- Object an object expressing layout contraints for this- See Also:
Container.validate(),JComponent.revalidate(),remove(int),LayoutManager
-
add
public void add(Component comp, Object constraints, int index)
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.- Overrides:
addin classContainer- Parameters:
comp- Component the component to be addedconstraints- Object an object expressing layout constraints for thisindex- int the position in the container's list at which to insert the component; -1 means insert at the end component- See Also:
Container.validate(),JComponent.revalidate(),remove(int),LayoutManager
-
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.- Overrides:
removein classContainer- Parameters:
index- the index of the component to be removed- See Also:
add(java.awt.Component)
-
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.- Overrides:
removeAllin classContainer- See Also:
add(java.awt.Component),remove(int)
-
createRootPane
protected void createRootPane()
Called by the constructor methods to create the default rootPane.
-
addImpl
protected void addImpl(Component comp, Object constraints, int index)
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.- Overrides:
addImplin classContainer- Parameters:
comp- the component to be enhancedconstraints- the constraints to be respectedindex- the index- See Also:
setRootPaneCheckingEnabled(boolean),RootPaneContainer
-
setJMenuBar
public void setJMenuBar(JMenuBar menu)
Sets the menubar for this panel frame.- Parameters:
menu- JMenuBar the menubar being placed in the frame- See Also:
getJMenuBar()
-
getJMenuBar
public JMenuBar getJMenuBar()
Returns the menubar set on this panel frame.- Returns:
- JMenuBar the menubar for this frame
- See Also:
setJMenuBar(javax.swing.JMenuBar)
-
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:
addImpl(java.awt.Component, java.lang.Object, int),Container.setLayout(java.awt.LayoutManager),isRootPaneCheckingEnabled(),RootPaneContainer
-
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:
addImpl(java.awt.Component, java.lang.Object, int),Container.setLayout(java.awt.LayoutManager),setRootPaneCheckingEnabled(boolean),RootPaneContainer
-
processWindowEvent
protected void processWindowEvent(WindowEvent e)
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
public void remove(Component comp)
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.- Overrides:
removein classContainer- Parameters:
comp- Component the component to be removed- See Also:
Container.add(java.awt.Component),RootPaneContainer
-
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:
JFrame.setDefaultCloseOperation(int)
-
getDefaultCloseOperation
public int getDefaultCloseOperation()
A convenience method for getting default close operation. By default this method return 0.- Returns:
- the default close operation.
-
update
public void update(Graphics g)
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:
Component.update(Graphics)
-
setIconImage
public void setIconImage(Image image)
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:
Frame.getIconImage()
-
getIconImage
public Image getIconImage()
Get the image that is displayed in the panel.- Returns:
- the icon image that is displayed.
-
getFrameIcon
public Icon getFrameIcon()
Returns the frame's icon.- Returns:
- the frame's icon
-
setFrameIcon
public void setFrameIcon(Icon newIcon)
Sets a new frame icon.- Parameters:
newIcon- the icon to be set
-
getTitle
public String getTitle()
Returns the frame's title text.- Returns:
- String the current title text
-
setTitle
public void setTitle(String newText)
Sets a new title text.- Parameters:
newText- the title text tp be set
-
getToolBar
public JToolBar getToolBar()
Returns the currentJToolBar,nullif none has been set before.- Returns:
- the current toolbar - if any
-
setToolBar
public void setToolBar(JToolBar newToolBar)
Sets a newJToolBarin the header.- Parameters:
newToolBar- the tool bar to be set in the header
-
getContent
public Component 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
protected Color getTextForeground(boolean isSelected)
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
protected Color 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
-
-