Module tvbrowser
Package util.ui

Class ScrollableMenu

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

    public class ScrollableMenu
    extends javax.swing.JMenu
    An implementation of a scrollable menu -- a popup window containing JMenuItems that is displayed when the user selects an item on the JMenuBar. In addition to JMenuItems, a JMenu can also contain JSeparators.

    In essence, a menu is a button with an associated JPopupMenu. When the "button" is pressed, the JPopupMenu appears. If the "button" is on the JMenuBar, the menu is a top-level window. If the "button" is another menu item, then the JPopupMenu is "pull-right" menu. If the menu contains more items than displayable on the screen the menu becomes scrollable by hiding some of the items and adding an add and a down arrow at both ends of the menu to scroll the menu with this arrows. description: A popup window containing menu items displayed in a menu bar.

    See Also:
    JPopupMenu, Serialized Form
    • Nested Class Summary

      • Nested classes/interfaces inherited from class javax.swing.JMenu

        javax.swing.JMenu.AccessibleJMenu, javax.swing.JMenu.WinListener
      • Nested classes/interfaces inherited from class javax.swing.JMenuItem

        javax.swing.JMenuItem.AccessibleJMenuItem
      • Nested classes/interfaces inherited from class javax.swing.AbstractButton

        javax.swing.AbstractButton.AccessibleAbstractButton, javax.swing.AbstractButton.ButtonChangeListener
      • 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 inherited from class javax.swing.JMenu

        popupListener
      • Fields inherited from class javax.swing.AbstractButton

        actionListener, BORDER_PAINTED_CHANGED_PROPERTY, changeEvent, changeListener, CONTENT_AREA_FILLED_CHANGED_PROPERTY, DISABLED_ICON_CHANGED_PROPERTY, DISABLED_SELECTED_ICON_CHANGED_PROPERTY, FOCUS_PAINTED_CHANGED_PROPERTY, HORIZONTAL_ALIGNMENT_CHANGED_PROPERTY, HORIZONTAL_TEXT_POSITION_CHANGED_PROPERTY, ICON_CHANGED_PROPERTY, itemListener, MARGIN_CHANGED_PROPERTY, MNEMONIC_CHANGED_PROPERTY, model, MODEL_CHANGED_PROPERTY, PRESSED_ICON_CHANGED_PROPERTY, ROLLOVER_ENABLED_CHANGED_PROPERTY, ROLLOVER_ICON_CHANGED_PROPERTY, ROLLOVER_SELECTED_ICON_CHANGED_PROPERTY, SELECTED_ICON_CHANGED_PROPERTY, TEXT_CHANGED_PROPERTY, VERTICAL_ALIGNMENT_CHANGED_PROPERTY, VERTICAL_TEXT_POSITION_CHANGED_PROPERTY
      • 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
      ScrollableMenu()
      Constructs a new JMenu with no text.
      ScrollableMenu​(java.lang.String menuTitle)
      Constructs a new JMenu with the supplied string as its text.
      ScrollableMenu​(java.lang.String s, boolean b)
      Constructs a new JMenu with the supplied string as its text and specified as a tear-off menu or not.
      ScrollableMenu​(javax.swing.Action a)
      Constructs a new JMenu whose properties are taken from the Action supplied.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.awt.Component add​(java.awt.Component component)
      Appends a component to the end of this menu.
      java.awt.Component add​(java.awt.Component component, int index)
      Adds the specified component to this container at the given position.
      javax.swing.JMenuItem add​(javax.swing.JMenuItem menuItem)
      Appends a menu item to the end of this menu.
      protected void addScrollableComponent​(java.awt.Component component)
      Add the specified component at the end of this scrollable menu
      protected void addScrollableComponent​(java.awt.Component component, int pos)
      Add the specified component to this scrollable menu
      void addSeparator()
      Appends a new separator to the end of the menu.
      javax.swing.JMenuItem getItem​(int pos)
      Returns the JMenuItem at the specified position.
      int getItemCount()
      Returns the number of items on the menu, including separators.
      java.awt.Component getMenuComponent​(int n)
      Returns the component at position n.
      int getMenuComponentCount()
      Returns the number of components on the menu.
      java.awt.Component[] getMenuComponents()
      Returns an array of Components of the menu's subcomponents.
      javax.swing.MenuElement[] getSubElements()  
      void insert​(java.lang.String s, int pos)  
      javax.swing.JMenuItem insert​(javax.swing.Action a, int pos)
      Inserts a new menu item attached to the specified Action object at a given position.
      javax.swing.JMenuItem insert​(javax.swing.JMenuItem menuItem, int pos)
      Inserts the specified JMenuitem at a given position.
      boolean isMenuComponent​(java.awt.Component component)
      Returns true if the specified component exists in the submenu hierarchy.
      void remove​(int pos)
      Removes the menu item at the specified index from this menu.
      void remove​(java.awt.Component component)
      Removes the component c from this menu.
      void remove​(javax.swing.JMenuItem menuItem)
      Removes the specified menu item from this menu.
      void removeAll()
      Removes all menu items from this menu.
      protected void removeScrollableComponent​(java.awt.Component component)
      Remove the specified component from this scrollable menu
      • Methods inherited from class javax.swing.JMenu

        add, add, addMenuListener, applyComponentOrientation, createActionChangeListener, createActionComponent, createWinListener, doClick, fireMenuCanceled, fireMenuDeselected, fireMenuSelected, getAccessibleContext, getComponent, getDelay, getMenuListeners, getPopupMenu, getPopupMenuOrigin, getUIClassID, insertSeparator, isPopupMenuVisible, isSelected, isTearOff, isTopLevelMenu, menuSelectionChanged, paramString, processKeyEvent, removeMenuListener, setAccelerator, setComponentOrientation, setDelay, setMenuLocation, setModel, setPopupMenuVisible, setSelected, updateUI
      • Methods inherited from class javax.swing.JMenuItem

        actionPropertyChanged, addMenuDragMouseListener, addMenuKeyListener, configurePropertiesFromAction, fireMenuDragMouseDragged, fireMenuDragMouseEntered, fireMenuDragMouseExited, fireMenuDragMouseReleased, fireMenuKeyPressed, fireMenuKeyReleased, fireMenuKeyTyped, getAccelerator, getMenuDragMouseListeners, getMenuKeyListeners, init, isArmed, processKeyEvent, processMenuDragMouseEvent, processMenuKeyEvent, processMouseEvent, removeMenuDragMouseListener, removeMenuKeyListener, setArmed, setEnabled, setUI
      • Methods inherited from class javax.swing.AbstractButton

        addActionListener, addChangeListener, addImpl, addItemListener, checkHorizontalKey, checkVerticalKey, createActionListener, createActionPropertyChangeListener, createChangeListener, createItemListener, doClick, fireActionPerformed, fireItemStateChanged, fireStateChanged, getAction, getActionCommand, getActionListeners, getChangeListeners, getDisabledIcon, getDisabledSelectedIcon, getDisplayedMnemonicIndex, getHideActionText, getHorizontalAlignment, getHorizontalTextPosition, getIcon, getIconTextGap, getItemListeners, getLabel, getMargin, getMnemonic, getModel, getMultiClickThreshhold, getPressedIcon, getRolloverIcon, getRolloverSelectedIcon, getSelectedIcon, getSelectedObjects, getText, getUI, getVerticalAlignment, getVerticalTextPosition, imageUpdate, isBorderPainted, isContentAreaFilled, isFocusPainted, isRolloverEnabled, paintBorder, removeActionListener, removeChangeListener, removeItemListener, removeNotify, setAction, setActionCommand, setBorderPainted, setContentAreaFilled, setDisabledIcon, setDisabledSelectedIcon, setDisplayedMnemonicIndex, setFocusPainted, setHideActionText, setHorizontalAlignment, setHorizontalTextPosition, setIcon, setIconTextGap, setLabel, setLayout, setMargin, setMnemonic, setMnemonic, setMultiClickThreshhold, setPressedIcon, setRolloverEnabled, setRolloverIcon, setRolloverSelectedIcon, setSelectedIcon, setText, setUI, setVerticalAlignment, setVerticalTextPosition
      • 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, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, 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, 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, addContainerListener, addPropertyChangeListener, addPropertyChangeListener, 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, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, 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, 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
      • Methods inherited from interface javax.swing.MenuElement

        processKeyEvent, processMouseEvent
    • Constructor Detail

      • ScrollableMenu

        public ScrollableMenu()
        Constructs a new JMenu with no text.
      • ScrollableMenu

        public ScrollableMenu​(javax.swing.Action a)
        Constructs a new JMenu whose properties are taken from the Action supplied.
        Parameters:
        a - an Action
        Since:
        1.3
      • ScrollableMenu

        public ScrollableMenu​(java.lang.String s,
                              boolean b)
        Constructs a new JMenu with the supplied string as its text and specified as a tear-off menu or not.
        Parameters:
        s - the text for the menu label
        b - can the menu be torn off (not yet implemented)
      • ScrollableMenu

        public ScrollableMenu​(java.lang.String menuTitle)
        Constructs a new JMenu with the supplied string as its text.
        Parameters:
        menuTitle - the text for the menu label
    • Method Detail

      • add

        public javax.swing.JMenuItem add​(javax.swing.JMenuItem menuItem)
        Appends a menu item to the end of this menu. Returns the menu item added.
        Overrides:
        add in class javax.swing.JMenu
        Parameters:
        menuItem - the JMenuitem to be added
        Returns:
        the JMenuItem added
      • add

        public java.awt.Component add​(java.awt.Component component)
        Appends a component to the end of this menu. Returns the component added.
        Overrides:
        add in class javax.swing.JMenu
        Parameters:
        component - the Component to add
        Returns:
        the Component added
      • add

        public java.awt.Component add​(java.awt.Component component,
                                      int index)
        Adds the specified component to this container at the given position. If index equals -1, the component will be appended to the end.
        Overrides:
        add in class javax.swing.JMenu
        Parameters:
        component - the Component to add
        index - the position at which to insert the component
        Returns:
        the Component added
        See Also:
        remove(Component), Container.add(Component, int)
      • insert

        public void insert​(java.lang.String s,
                           int pos)
        Overrides:
        insert in class javax.swing.JMenu
      • insert

        public javax.swing.JMenuItem insert​(javax.swing.JMenuItem menuItem,
                                            int pos)
        Inserts the specified JMenuitem at a given position.
        Overrides:
        insert in class javax.swing.JMenu
        Parameters:
        menuItem - the JMenuitem to add
        pos - an integer specifying the position at which to add the new JMenuitem
        Returns:
        the new menu item
        Throws:
        java.lang.IllegalArgumentException - if the value of pos < 0
      • insert

        public javax.swing.JMenuItem insert​(javax.swing.Action a,
                                            int pos)
        Inserts a new menu item attached to the specified Action object at a given position.
        Overrides:
        insert in class javax.swing.JMenu
        Parameters:
        a - the Action object for the menu item to add
        pos - an integer specifying the position at which to add the new menu item
        Throws:
        java.lang.IllegalArgumentException - if the value of pos < 0
      • getItem

        public javax.swing.JMenuItem getItem​(int pos)
        Returns the JMenuItem at the specified position. If the component at pos is not a menu item, null is returned. This method is included for AWT compatibility.
        Overrides:
        getItem in class javax.swing.JMenu
        Parameters:
        pos - an integer specifying the position
        Returns:
        the menu item at the specified position; or null if the item as the specified position is not a menu item
        Throws:
        java.lang.IllegalArgumentException - if the value of pos < 0
      • getItemCount

        public int getItemCount()
        Returns the number of items on the menu, including separators. This method is included for AWT compatibility.
        Overrides:
        getItemCount in class javax.swing.JMenu
        Returns:
        an integer equal to the number of items on the menu
        See Also:
        getMenuComponentCount()
      • remove

        public void remove​(javax.swing.JMenuItem menuItem)
        Removes the specified menu item from this menu. If there is no popup menu, this method will have no effect.
        Overrides:
        remove in class javax.swing.JMenu
        Parameters:
        menuItem - the JMenuItem to be removed from the menu
      • remove

        public void remove​(int pos)
        Removes the menu item at the specified index from this menu.
        Overrides:
        remove in class javax.swing.JMenu
        Parameters:
        pos - the position of the item to be removed
        Throws:
        java.lang.IllegalArgumentException - if the value of pos < 0, or if pos is greater than the number of menu items
      • remove

        public void remove​(java.awt.Component component)
        Removes the component c from this menu.
        Overrides:
        remove in class javax.swing.JMenu
        Parameters:
        component - the component to be removed
      • removeAll

        public void removeAll()
        Removes all menu items from this menu.
        Overrides:
        removeAll in class javax.swing.JMenu
      • getMenuComponentCount

        public int getMenuComponentCount()
        Returns the number of components on the menu.
        Overrides:
        getMenuComponentCount in class javax.swing.JMenu
        Returns:
        an integer containing the number of components on the menu
      • getMenuComponent

        public java.awt.Component getMenuComponent​(int n)
        Returns the component at position n.
        Overrides:
        getMenuComponent in class javax.swing.JMenu
        Parameters:
        n - the position of the component to be returned
        Returns:
        the component requested, or null if there is no popup menu
      • getMenuComponents

        public java.awt.Component[] getMenuComponents()
        Returns an array of Components of the menu's subcomponents. Note that this returns all Components in the popup menu, including separators.
        Overrides:
        getMenuComponents in class javax.swing.JMenu
        Returns:
        an array of Components or an empty array if there is no popup menu
      • isMenuComponent

        public boolean isMenuComponent​(java.awt.Component component)
        Returns true if the specified component exists in the submenu hierarchy.
        Overrides:
        isMenuComponent in class javax.swing.JMenu
        Parameters:
        component - the Component to be tested
        Returns:
        true if the Component exists, false otherwise
      • addSeparator

        public void addSeparator()
        Appends a new separator to the end of the menu.
        Overrides:
        addSeparator in class javax.swing.JMenu
      • addScrollableComponent

        protected void addScrollableComponent​(java.awt.Component component,
                                              int pos)
        Add the specified component to this scrollable menu
        Parameters:
        component - the Component to add
        pos - an integer specifying the position at which to add the new component
      • addScrollableComponent

        protected void addScrollableComponent​(java.awt.Component component)
        Add the specified component at the end of this scrollable menu
        Parameters:
        component - the Component to add
      • removeScrollableComponent

        protected void removeScrollableComponent​(java.awt.Component component)
        Remove the specified component from this scrollable menu
        Parameters:
        component - the Component to remove
      • getSubElements

        public javax.swing.MenuElement[] getSubElements()
        Specified by:
        getSubElements in interface javax.swing.MenuElement
        Overrides:
        getSubElements in class javax.swing.JMenu