@Override
		public void mouseWheelMoved( MouseWheelEvent e ) {
			// convert mouse location before scrolling
			Point mouseLocation = SwingUtilities.convertPoint( (Component) e.getSource(), e.getPoint(), this );

			// scroll
			scroll( e.getUnitsToScroll() );

			// select menu item at mouse location
			Component c = SwingUtilities.getDeepestComponentAt( this, mouseLocation.x, mouseLocation.y );
			if( c instanceof JMenuItem ) {
				ButtonUI ui = ((JMenuItem)c).getUI();
				if( ui instanceof BasicMenuItemUI )
					MenuSelectionManager.defaultManager().setSelectedPath( ((BasicMenuItemUI)ui).getPath() );
			}

			// this avoids that the popup is closed when running on Java 8
			// https://bugs.openjdk.java.net/browse/JDK-8075063
			e.consume();
		}
Scroll when user rotates mouse wheel.
flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatPopupMenuUI.java