Class JXStatusBar
- All Implemented Interfaces:
ImageObserver
,MenuContainer
,Serializable
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);
- Author:
- pdoubleya, rbair, Karl George Schaefer
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic class
The constraint object to be used with theJXStatusBar
.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
FieldsFields 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 -
Method Summary
Modifier and TypeMethodDescriptiongetUI()
Returns the look and feel (LaF) object that renders this component.Returns a string that specifies the name of the LaF class that renders this component.boolean
void
setResizeHandleEnabled
(boolean resizeHandleEnabled) void
setUI
(StatusBarUI ui) Sets the look and feel (LaF) object that renders this component.void
updateUI()
Notification from theUIManager
that the LaF 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 Details
-
uiClassID
- See Also:
-
getUIClassID()
JComponent.readObject(java.io.ObjectInputStream)
- Constant Field Values
-
-
Constructor Details
-
JXStatusBar
public JXStatusBar()Creates a new JXStatusBar
-
-
Method Details
-
setResizeHandleEnabled
public void setResizeHandleEnabled(boolean resizeHandleEnabled) - Parameters:
resizeHandleEnabled
- the resizeHandleEnabled to set
-
isResizeHandleEnabled
public boolean isResizeHandleEnabled()- Returns:
- the resizeHandleEnabled
-
getUI
Returns the look and feel (LaF) object that renders this component.- Overrides:
getUI
in classJComponent
- Returns:
- the StatusBarUI object that renders this component
-
setUI
Sets the look and feel (LaF) object that renders this component.- Parameters:
ui
- the StatusBarUI LaF object- See Also:
-
getUIClassID
Returns a string that specifies the name of the LaF class that renders this component.- Overrides:
getUIClassID
in classJComponent
- Returns:
- "StatusBarUI"
- See Also:
-
updateUI
public void updateUI()Notification from theUIManager
that the LaF has changed. Replaces the current UI object with the latest version from theUIManager
.- Overrides:
updateUI
in classJComponent
- See Also:
-