Class MenuScroller


  • public class MenuScroller
    extends java.lang.Object
    A class that provides scrolling capabilities to a long menu dropdown or popup menu. A number of items can optionally be frozen at the top of the menu.

    Implementation note: The default scrolling interval is 150 milliseconds.

    Since:
    4593
    • Constructor Summary

      Constructors 
      Constructor Description
      MenuScroller​(javax.swing.JMenu menu)
      Constructs a MenuScroller that scrolls a menu with the default scrolling interval.
      MenuScroller​(javax.swing.JMenu menu, int interval)
      Constructs a MenuScroller that scrolls a menu with the specified scrolling interval.
      MenuScroller​(javax.swing.JMenu menu, int interval, int topFixedCount)
      Constructs a MenuScroller that scrolls a menu with the specified scrolling interval, and the specified numbers of items fixed at the top of the menu.
      MenuScroller​(javax.swing.JPopupMenu menu)
      Constructs a MenuScroller that scrolls a popup menu with the default scrolling interval.
      MenuScroller​(javax.swing.JPopupMenu menu, int interval)
      Constructs a MenuScroller that scrolls a popup menu with the specified scrolling interval.
      MenuScroller​(javax.swing.JPopupMenu menu, int interval, int topFixedCount)
      Constructs a MenuScroller that scrolls a popup menu with the specified scrolling interval, and the specified numbers of items fixed at the top of the popup menu.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      private int computeScrollCount​(int startIndex)  
      void dispose()
      Removes this MenuScroller from the associated menu and restores the default behavior of the menu.
      int getTopFixedCount()
      Returns the number of items fixed at the top of the menu or popup menu.
      private void refreshMenu()  
      static MenuScroller setScrollerFor​(javax.swing.JMenu menu)
      Registers a menu to be scrolled with the default scrolling interval.
      static MenuScroller setScrollerFor​(javax.swing.JMenu menu, int interval)
      Registers a menu to be scrolled, with the specified scrolling interval.
      static MenuScroller setScrollerFor​(javax.swing.JMenu menu, int interval, int topFixedCount)
      Registers a menu to be scrolled, with the specified scrolling interval, and the specified numbers of items fixed at the top of the menu.
      static MenuScroller setScrollerFor​(javax.swing.JPopupMenu menu)
      Registers a popup menu to be scrolled with the default scrolling interval.
      static MenuScroller setScrollerFor​(javax.swing.JPopupMenu menu, int interval)
      Registers a popup menu to be scrolled, with the specified scrolling interval.
      static MenuScroller setScrollerFor​(javax.swing.JPopupMenu menu, int interval, int topFixedCount)
      Registers a popup menu to be scrolled, with the specified scrolling interval, and the specified numbers of items fixed at the top of the popup menu.
      void setTopFixedCount​(int topFixedCount)
      Sets the number of items to fix at the top of the menu or popup menu.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • MenuScroller

        public MenuScroller​(javax.swing.JMenu menu)
        Constructs a MenuScroller that scrolls a menu with the default scrolling interval.
        Parameters:
        menu - the menu
        Throws:
        java.lang.IllegalArgumentException - if scrollCount is 0 or negative
      • MenuScroller

        public MenuScroller​(javax.swing.JPopupMenu menu)
        Constructs a MenuScroller that scrolls a popup menu with the default scrolling interval.
        Parameters:
        menu - the popup menu
        Throws:
        java.lang.IllegalArgumentException - if scrollCount is 0 or negative
      • MenuScroller

        public MenuScroller​(javax.swing.JMenu menu,
                            int interval)
        Constructs a MenuScroller that scrolls a menu with the specified scrolling interval.
        Parameters:
        menu - the menu
        interval - the scroll interval, in milliseconds
        Throws:
        java.lang.IllegalArgumentException - if scrollCount or interval is 0 or negative
        Since:
        7463
      • MenuScroller

        public MenuScroller​(javax.swing.JPopupMenu menu,
                            int interval)
        Constructs a MenuScroller that scrolls a popup menu with the specified scrolling interval.
        Parameters:
        menu - the popup menu
        interval - the scroll interval, in milliseconds
        Throws:
        java.lang.IllegalArgumentException - if scrollCount or interval is 0 or negative
        Since:
        7463
      • MenuScroller

        public MenuScroller​(javax.swing.JMenu menu,
                            int interval,
                            int topFixedCount)
        Constructs a MenuScroller that scrolls a menu with the specified scrolling interval, and the specified numbers of items fixed at the top of the menu.
        Parameters:
        menu - the menu
        interval - the scroll interval, in milliseconds
        topFixedCount - the number of items to fix at the top. May be 0
        Throws:
        java.lang.IllegalArgumentException - if scrollCount or interval is 0 or negative or if topFixedCount is negative
        Since:
        7463
      • MenuScroller

        public MenuScroller​(javax.swing.JPopupMenu menu,
                            int interval,
                            int topFixedCount)
        Constructs a MenuScroller that scrolls a popup menu with the specified scrolling interval, and the specified numbers of items fixed at the top of the popup menu.
        Parameters:
        menu - the popup menu
        interval - the scroll interval, in milliseconds
        topFixedCount - the number of items to fix at the top. May be 0
        Throws:
        java.lang.IllegalArgumentException - if scrollCount or interval is 0 or negative or if topFixedCount is negative
        Since:
        7463
    • Method Detail

      • setScrollerFor

        public static MenuScroller setScrollerFor​(javax.swing.JMenu menu)
        Registers a menu to be scrolled with the default scrolling interval.
        Parameters:
        menu - the menu
        Returns:
        the MenuScroller
      • setScrollerFor

        public static MenuScroller setScrollerFor​(javax.swing.JPopupMenu menu)
        Registers a popup menu to be scrolled with the default scrolling interval.
        Parameters:
        menu - the popup menu
        Returns:
        the MenuScroller
      • setScrollerFor

        public static MenuScroller setScrollerFor​(javax.swing.JMenu menu,
                                                  int interval)
        Registers a menu to be scrolled, with the specified scrolling interval.
        Parameters:
        menu - the menu
        interval - the scroll interval, in milliseconds
        Returns:
        the MenuScroller
        Throws:
        java.lang.IllegalArgumentException - if scrollCount or interval is 0 or negative
        Since:
        7463
      • setScrollerFor

        public static MenuScroller setScrollerFor​(javax.swing.JPopupMenu menu,
                                                  int interval)
        Registers a popup menu to be scrolled, with the specified scrolling interval.
        Parameters:
        menu - the popup menu
        interval - the scroll interval, in milliseconds
        Returns:
        the MenuScroller
        Throws:
        java.lang.IllegalArgumentException - if scrollCount or interval is 0 or negative
        Since:
        7463
      • setScrollerFor

        public static MenuScroller setScrollerFor​(javax.swing.JMenu menu,
                                                  int interval,
                                                  int topFixedCount)
        Registers a menu to be scrolled, with the specified scrolling interval, and the specified numbers of items fixed at the top of the menu.
        Parameters:
        menu - the menu
        interval - the scroll interval, in milliseconds
        topFixedCount - the number of items to fix at the top. May be 0.
        Returns:
        the MenuScroller
        Throws:
        java.lang.IllegalArgumentException - if scrollCount or interval is 0 or negative or if topFixedCount is negative
        Since:
        7463
      • setScrollerFor

        public static MenuScroller setScrollerFor​(javax.swing.JPopupMenu menu,
                                                  int interval,
                                                  int topFixedCount)
        Registers a popup menu to be scrolled, with the specified scrolling interval, and the specified numbers of items fixed at the top of the popup menu.
        Parameters:
        menu - the popup menu
        interval - the scroll interval, in milliseconds
        topFixedCount - the number of items to fix at the top. May be 0
        Returns:
        the MenuScroller
        Throws:
        java.lang.IllegalArgumentException - if scrollCount or interval is 0 or negative or if topFixedCount is negative
        Since:
        7463
      • getTopFixedCount

        public int getTopFixedCount()
        Returns the number of items fixed at the top of the menu or popup menu.
        Returns:
        the number of items
      • setTopFixedCount

        public void setTopFixedCount​(int topFixedCount)
        Sets the number of items to fix at the top of the menu or popup menu.
        Parameters:
        topFixedCount - the number of items
      • dispose

        public void dispose()
        Removes this MenuScroller from the associated menu and restores the default behavior of the menu.