Class JXBusyLabel

  • All Implemented Interfaces:
    java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, javax.swing.SwingConstants

    public class JXBusyLabel
    extends javax.swing.JLabel

    A simple circular animation, useful for denoting an action is taking place that may take an unknown length of time to complete. Similar to an indeterminant JProgressBar, but with a different look.

    For example:

    
         JXFrame frame = new JXFrame("test", true);
         JXBusyLabel label = new JXBusyLabel();
         frame.add(label);
         //...
         label.setBusy(true);
     

    Another more complicated example:
    
     JXBusyLabel label = new JXBusyLabel(new Dimension(100,84));
     BusyPainter painter = new BusyPainter(
     new Rectangle2D.Float(0, 0,13.500001f,1),
     new RoundRectangle2D.Float(12.5f,12.5f,59.0f,59.0f,10,10));
     painter.setTrailLength(5);
     painter.setPoints(31);
     painter.setFrame(1);
     label.setPreferredSize(new Dimension(100,84));
     label.setIcon(new EmptyIcon(100,84));
     label.setBusyPainter(painter);
    
    Another example:
    
         JXBusyLabel label = new MyBusyLabel(new Dimension(100, 84));
     
    where MyBusyLabel is:
    
     public class MyBusyLabel extends JXBusyLabel {
         public MyBusyLabel(Dimension prefSize) {
             super(prefSize);
         }
         
         protected BusyLabel createBusyLabel(Dimension dim) {
             BusyPainter painter = new BusyPainter(
             new Rectangle2D.Float(0, 0,13.500001f,1),
             new RoundRectangle2D.Float(12.5f,12.5f,59.0f,59.0f,10,10));
             painter.setTrailLength(5);
             painter.setPoints(31);
             painter.setFrame(1);
             
             return painter;
         }
     }
     
    See Also:
    Serialized Form
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  JXBusyLabel.Direction
      Direction is used to set the initial direction in which the animation starts.
      • Nested classes/interfaces inherited from class javax.swing.JLabel

        javax.swing.JLabel.AccessibleJLabel
      • 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
      static java.lang.String uiClassID
      UI Class ID
      • Fields inherited from class javax.swing.JLabel

        labelFor
      • 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
      • Fields inherited from interface javax.swing.SwingConstants

        BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST
    • Constructor Summary

      Constructors 
      Constructor Description
      JXBusyLabel()
      Creates a new instance of JXBusyLabel initialized to circular shape in bounds of 26 by 26 points.
      JXBusyLabel​(java.awt.Dimension dim)
      Creates a new instance of JXBusyLabel initialized to the arbitrary size and using default circular progress indicator.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addNotify()  
      protected BusyPainter createBusyPainter​(java.awt.Dimension dim)
      Create and return a BusyPpainter to use for the Label.
      protected void frameChanged()  
      BusyPainter getBusyPainter()
      Returns the current BusyPainter.
      int getDelay()  
      java.lang.String getUIClassID()
      Returns the name of the L&F class that renders this component.
      protected void initPainter​(java.awt.Dimension dim)
      Initialize the BusyPainter and (this) JXBusyLabel with the given preferred size.
      boolean isBusy()
      Gets whether this JXBusyLabel is busy.
      void removeNotify()  
      void setBusy​(boolean busy)
      Sets whether this JXBusyLabel instance should consider itself busy.
      void setBusyPainter​(BusyPainter busyPainter)  
      void setDelay​(int delay)  
      void setDirection​(JXBusyLabel.Direction dir)
      Sets direction of rotation.
      void updateUI()
      Notification from the UIManager that the L&F has changed.
      • Methods inherited from class javax.swing.JLabel

        checkHorizontalKey, checkVerticalKey, getAccessibleContext, getDisabledIcon, getDisplayedMnemonic, getDisplayedMnemonicIndex, getHorizontalAlignment, getHorizontalTextPosition, getIcon, getIconTextGap, getLabelFor, getText, getUI, getVerticalAlignment, getVerticalTextPosition, imageUpdate, paramString, setDisabledIcon, setDisplayedMnemonic, setDisplayedMnemonic, setDisplayedMnemonicIndex, setHorizontalAlignment, setHorizontalTextPosition, setIcon, setIconTextGap, setLabelFor, setText, setUI, setVerticalAlignment, setVerticalTextPosition
      • Methods inherited from class javax.swing.JComponent

        addAncestorListener, 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, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, 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, 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, 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

    • Constructor Detail

      • JXBusyLabel

        public JXBusyLabel()
        Creates a new instance of JXBusyLabel initialized to circular shape in bounds of 26 by 26 points.
      • JXBusyLabel

        public JXBusyLabel​(java.awt.Dimension dim)
        Creates a new instance of JXBusyLabel initialized to the arbitrary size and using default circular progress indicator.
        Parameters:
        dim - Preferred size of the label.
    • Method Detail

      • setDirection

        public void setDirection​(JXBusyLabel.Direction dir)
        Sets direction of rotation. Direction.RIGHT is the default value. Direction is taken from the very top point so Direction.RIGHT enables rotation clockwise.
        Parameters:
        dir - Direction of rotation.
      • initPainter

        protected void initPainter​(java.awt.Dimension dim)
        Initialize the BusyPainter and (this) JXBusyLabel with the given preferred size. This method is called automatically when the BusyPainter is set/changed.
        Parameters:
        dim - The new Preferred Size for the BusyLabel.
        See Also:
        getBusyPainter(), setBusyPainter(BusyPainter)
      • createBusyPainter

        protected BusyPainter createBusyPainter​(java.awt.Dimension dim)
        Create and return a BusyPpainter to use for the Label. This may be overridden to return any painter you like. By default, this method uses the UI (BusyLabelUI)to create a BusyPainter.
        Parameters:
        dim - Painter size.
        See Also:
        JLabel.getUI()
      • isBusy

        public boolean isBusy()

        Gets whether this JXBusyLabel is busy. If busy, then the JXBusyLabel instance will indicate that it is busy, generally by animating some state.

        Returns:
        true if this instance is busy
      • setBusy

        public void setBusy​(boolean busy)

        Sets whether this JXBusyLabel instance should consider itself busy. A busy component may indicate that it is busy via animation, or some other means.

        Parameters:
        busy - whether this JXBusyLabel instance should consider itself busy
      • removeNotify

        public void removeNotify()
        Overrides:
        removeNotify in class javax.swing.JComponent
      • addNotify

        public void addNotify()
        Overrides:
        addNotify in class javax.swing.JComponent
      • frameChanged

        protected void frameChanged()
      • setBusyPainter

        public final void setBusyPainter​(BusyPainter busyPainter)
        Parameters:
        busyPainter - the busyPainter to set
      • getDelay

        public int getDelay()
        Returns:
        the delay
      • setDelay

        public void setDelay​(int delay)
        Parameters:
        delay - the delay to set
      • 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.JLabel
        See Also:
        JComponent.updateUI()
      • getUIClassID

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