Module org.jcommon

Class JPanelFrame

    • 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 icon
        title - 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 title
        bar - the initial tool bar
        content - 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 icon
        title - the initial title
        bar - the initial tool bar
        content - 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:
        getRootPane in interface RootPaneContainer
        Overrides:
        getRootPane in class JComponent
        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:
        setContentPane in interface RootPaneContainer
        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()
      • 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:
        setLayeredPane in interface RootPaneContainer
        Throws:
        IllegalComponentStateException - (a runtime exception) if the layered pane parameter is null
        See Also:
        getLayeredPane(), JRootPane.getLayeredPane()
      • 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:
        setGlassPane in interface RootPaneContainer
        See Also:
        getGlassPane(), JRootPane.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:
        add in class Container
        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:
        add in class Container
        Parameters:
        comp - Component the component to be added
        index - 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:
        add in class Container
        Parameters:
        comp - Component the component to be added
        constraints - 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:
        add in class Container
        Parameters:
        comp - Component the component to be added
        constraints - Object an object expressing layout constraints for this
        index - 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:
        remove in class Container
        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:
        removeAll in class Container
        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:
        addImpl in class Container
        Parameters:
        comp - the component to be enhanced
        constraints - the constraints to be respected
        index - 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()
      • 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:
        remove in class Container
        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:
        update in class JComponent
        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 current JToolBar, null if none has been set before.
        Returns:
        the current toolbar - if any
      • setToolBar

        public void setToolBar​(JToolBar newToolBar)
        Sets a new JToolBar in 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.
        Overrides:
        updateUI in class JPanel
      • 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