Class MenuScroller


  • public class MenuScroller
    extends 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 Detail

      • MenuScroller

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

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

        public MenuScroller​(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:
        IllegalArgumentException - if scrollCount or interval is 0 or negative
        Since:
        7463
      • MenuScroller

        public MenuScroller​(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:
        IllegalArgumentException - if scrollCount or interval is 0 or negative
        Since:
        7463
      • MenuScroller

        public MenuScroller​(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:
        IllegalArgumentException - if scrollCount or interval is 0 or negative or if topFixedCount is negative
        Since:
        7463
      • MenuScroller

        public MenuScroller​(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:
        IllegalArgumentException - if scrollCount or interval is 0 or negative or if topFixedCount is negative
        Since:
        7463
    • Method Detail

      • setScrollerFor

        public static MenuScroller setScrollerFor​(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​(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​(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:
        IllegalArgumentException - if scrollCount or interval is 0 or negative
        Since:
        7463
      • setScrollerFor

        public static MenuScroller setScrollerFor​(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:
        IllegalArgumentException - if scrollCount or interval is 0 or negative
        Since:
        7463
      • setScrollerFor

        public static MenuScroller setScrollerFor​(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:
        IllegalArgumentException - if scrollCount or interval is 0 or negative or if topFixedCount is negative
        Since:
        7463
      • setScrollerFor

        public static MenuScroller setScrollerFor​(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:
        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.