Class JXStatusBar

  • All Implemented Interfaces:
    java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable

    @JavaBean
    public class JXStatusBar
    extends javax.swing.JComponent

    A container for JComponents that is typically placed at the bottom of a form and runs the entire width of the form. There are 3 important functions that JXStatusBar provides. First, JXStatusBar provides a hook for a pluggable look. There is a definite look associated with status bars on windows, for instance. By implementing a subclass of JComponent, we provide a way for the pluggable look and feel system to modify the look of the status bar.

    Second, JXStatusBar comes with its own layout manager. Each item is added to the JXStatusBar with a JXStatusBar.Constraint as the constraint argument. The JXStatusBar.Constraint contains an Insets object, as well as a ResizeBehavior, which can be FIXED or FILL. The resize behaviour applies to the width of components. All components added will maintain there preferred height, and the height of the JXStatusBar will be the height of the highest component plus insets.

    A constraint with JXStatusBar.Constraint.ResizeBehavior.FIXED will cause the component to occupy a fixed area on the JXStatusBar. The size of the area remains constant when the JXStatusBar is resized. A constraint with this behavior may also take a width value, see JXStatusBar.Constraint.setFixedWidth(int). The width is a preferred minimum width. If the component preferred width is greater than the constraint width, the component width will apply.

    All components with constraint JXStatusBar.Constraint.ResizeBehavior.FILL will share equally any spare space in the JXStatusBar. Spare space is that left over after allowing for all FIXED component and the preferred width of FILL components, plus insets

    Constructing a JXStatusBar is very straightforward:

    
          JXStatusBar bar = new JXStatusBar();
          JLabel statusLabel = new JLabel("Ready");
          JXStatusBar.Constraint c1 = new JXStatusBar.Constraint() 
          c1.setFixedWidth(100);
          bar.add(statusLabel, c1);     // Fixed width of 100 with no inserts
          JXStatusBar.Constraint c2 = new JXStatusBarConstraint(
                  JXStatusBar.Constraint.ResizeBehavior.FILL) // Fill with no inserts
          JProgressBar pbar = new JProgressBar();
          bar.add(pbar, c2);            // Fill with no inserts - will use remaining space
     

    Two common use cases for status bars include tracking application status and progress. JXStatusBar does not manage these tasks, but instead special components exist or can be created that do manage these tasks. For example, if your application has a TaskManager or some other repository of currently running jobs, you could easily create a TaskManagerProgressBar that tracks those jobs. This component could then be added to the JXStatusBar like any other component.

    Client Properties

    The BasicStatusBarUI.AUTO_ADD_SEPARATOR client property can be specified, which will disable the auto-adding of separators. In this case, you must add your own JSeparator components. To use:

    
          JXStatusBar sbar = new JXStatusBar();
          sbar.putClientProperty(BasicStatusBarUI.AUTO_ADD_SEPARATOR, false);
          sbar.add(comp1);
          sbar.add(new JSeparator(JSeparator.VERTICAL));
          sbar.add(comp2);
          sbar.add(comp3);
      

    See Also:
    Serialized Form
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  JXStatusBar.Constraint
      The constraint object to be used with the JXStatusBar.
      • Nested classes/interfaces inherited from class javax.swing.JComponent

        javax.swing.JComponent.AccessibleJComponent
      • Nested classes/interfaces inherited from class java.awt.Container

        java.awt.Container.AccessibleAWTContainer
      • Nested classes/interfaces inherited from class java.awt.Component

        java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private boolean resizeHandleEnabled  
      static java.lang.String uiClassID  
      • 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
      JXStatusBar()
      Creates a new JXStatusBar
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      StatusBarUI getUI()
      Returns the look and feel (L&F) object that renders this component.
      java.lang.String getUIClassID()
      Returns a string that specifies the name of the L&F class that renders this component.
      boolean isResizeHandleEnabled()  
      void setResizeHandleEnabled​(boolean resizeHandleEnabled)  
      void setUI​(StatusBarUI ui)
      Sets the look and feel (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.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, getRootPane, 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, paramString, 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, update
      • Methods inherited from class java.awt.Container

        add, add, add, add, add, addContainerListener, addImpl, 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, remove, removeAll, 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, getAccessibleContext, 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
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Field Detail

      • resizeHandleEnabled

        private boolean resizeHandleEnabled
    • Constructor Detail

      • JXStatusBar

        public JXStatusBar()
        Creates a new JXStatusBar
    • Method Detail

      • setResizeHandleEnabled

        public void setResizeHandleEnabled​(boolean resizeHandleEnabled)
        Parameters:
        resizeHandleEnabled - the resizeHandleEnabled to set
      • isResizeHandleEnabled

        public boolean isResizeHandleEnabled()
        Returns:
        the resizeHandleEnabled
      • getUI

        public StatusBarUI getUI()
        Returns the look and feel (L&F) object that renders this component.
        Overrides:
        getUI in class javax.swing.JComponent
        Returns:
        the StatusBarUI object that renders this component
      • setUI

        public void setUI​(StatusBarUI ui)
        Sets the look and feel (L&F) object that renders this component.
        Parameters:
        ui - the StatusBarUI L&F object
        See Also:
        UIDefaults.getUI(javax.swing.JComponent)
      • getUIClassID

        public java.lang.String getUIClassID()
        Returns a string that specifies the name of the L&F class that renders this component.
        Overrides:
        getUIClassID in class javax.swing.JComponent
        Returns:
        "StatusBarUI"
        See Also:
        JComponent.getUIClassID(), UIDefaults.getUI(javax.swing.JComponent)
      • updateUI

        public void updateUI()
        Notification from the UIManager that the L&F has changed. Replaces the current UI object with the latest version from the UIManager.
        Overrides:
        updateUI in class javax.swing.JComponent
        See Also:
        JComponent.updateUI()