Class JXStatusBar
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- org.jdesktop.swingx.JXStatusBar
-
- All Implemented Interfaces:
java.awt.image.ImageObserver
,java.awt.MenuContainer
,java.io.Serializable
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 thatJXStatusBar
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 ofJComponent
, 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 theJXStatusBar
with aJXStatusBar.Constraint
as the constraint argument. TheJXStatusBar.Constraint
contains anInsets
object, as well as aResizeBehavior
, 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 theJXStatusBar
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 theJXStatusBar
. The size of the area remains constant when theJXStatusBar
is resized. A constraint with this behavior may also take a width value, seeJXStatusBar.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 theJXStatusBar
. Spare space is that left over after allowing for all FIXED component and the preferred width of FILL components, plus insetsConstructing 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 theJXStatusBar
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);
- Author:
- pdoubleya, rbair, Karl George Schaefer
- 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 theJXStatusBar
.-
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
-
-
Field Summary
Fields Modifier and Type Field Description 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
-
-
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 theUIManager
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
-
-
-
-
Field Detail
-
uiClassID
public static final java.lang.String uiClassID
- See Also:
getUIClassID()
,JComponent.readObject(java.io.ObjectInputStream)
, Constant Field Values
-
-
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 classjavax.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 classjavax.swing.JComponent
- Returns:
- "StatusBarUI"
- See Also:
JComponent.getUIClassID()
,UIDefaults.getUI(javax.swing.JComponent)
-
updateUI
public void updateUI()
Notification from theUIManager
that the L&F has changed. Replaces the current UI object with the latest version from theUIManager
.- Overrides:
updateUI
in classjavax.swing.JComponent
- See Also:
JComponent.updateUI()
-
-