# Class List<T>

java.lang.Object
com.codename1.ui.Component
com.codename1.ui.List<T>

All Implemented Interfaces:
  `Animation, Editable, ActionSource, StyleListener`

Direct Known Subclasses:
  `ComboBox, MultiList, RSSReader`

public class List<T> extends Component implements ActionSource

A set of elements that is rendered using a `com.codename1.ui.list.ListCellRenderer` and are extracted via the `com.codename1.ui.list.ListModel`, notice that we strongly discourage usage of lists.

A list can represent many UI concepts ranging from a carousel to a "todo" checklist, this is made possible thanks to extensive use of Swing's style of MVC. Specifically a list component is relatively simple, it invokes the model in order to extract the displayed/selected information and shows it to the user by invoking the cell renderer.

The list class itself is completely decoupled from everything, thus it allows us to extract its content from any source (e.g. network, storage etc.) and display the information in any form (e.g. checkboxed elemenents, icons etc.).

Important

`List` is a pretty complex class to use so we generally recommend developers use `com.codename1.ui.Container`, `com.codename1.components.InfiniteScrollAdapter` or `com.codename1.ui.InfiniteContainer` coupled with widgets such as `com.codename1.components.MultiButton`. Arranging those in a `com.codename1.ui.layouts.BoxLayout` on the `com.codename1.ui.layouts.BoxLayout#Y_AXIS` can produce the functionality of the `List` with better performance and far simpler code!

Another simpler alternative although not as attractive is the `com.codename1.ui.list.MultiList` class that removes a lot of the `com.codename1.ui.list.ListCellRenderer` related complexities inherent in building a list.

Sample Usage

The sample below uses the `com.codename1.ui.list.GenericListCellRenderer` class instead of the `com.codename1.ui.list.DefaultListCellRenderer`. We generally recommend using the builtin classes as the renderer is probably the greatest source of pitfalls in `Lists`.

    public void showForm() {
        com.codename1.ui.List list = new com.codename1.ui.List(createGenericListCellRendererModelData());
        list.setRenderer(new GenericListCellRenderer(createGenericRendererContainer(), createGenericRendererContainer()));
        Form hi = new Form("GenericListCellRenderer", new BorderLayout());
        hi.add(BorderLayout.CENTER, list);
        hi.show();
    }

    private Container createGenericRendererContainer() {
        Label name = new Label();
        name.setFocusable(true);
        name.setName("Name");
        Label surname = new Label();
        surname.setFocusable(true);
        surname.setName("Surname");
        CheckBox selected = new CheckBox();
        selected.setName("Selected");
        selected.setFocusable(true);
        Container c = BorderLayout.center(name).
                add(BorderLayout.SOUTH, surname).
                add(BorderLayout.WEST, selected);
        c.setUIID("ListRenderer");
        return c;
    }

    private Object[] createGenericListCellRendererModelData() {
        Map[] data = new HashMap[5];
        data[0] = new HashMap<>();
        data[0].put("Name", "Shai");
        data[0].put("Surname", "Almog");
        data[0].put("Selected", Boolean.TRUE);
        data[1] = new HashMap<>();
        data[1].put("Name", "Chen");
        data[1].put("Surname", "Fishbein");
        data[1].put("Selected", Boolean.TRUE);
        data[2] = new HashMap<>();
        data[2].put("Name", "Ofir");
        data[2].put("Surname", "Leitner");
        data[3] = new HashMap<>();
        data[3].put("Name", "Yaniv");
        data[3].put("Surname", "Vakarat");
        data[4] = new HashMap<>();
        data[4].put("Name", "Meirav");
        data[4].put("Surname", "Nachmanovitch");
        return data;
    }

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final int`
  `FIXED_CENTER`
  Indicates the list selection is fixed into place at the center of the list
  `static final int`
  `FIXED_LEAD`
  Indicates the list selection is fixed into place at the top of the list or at the left of the list
  `static final int`
  `FIXED_NONE`
  Indicates the list isn't fixed and that selection is movable
  `static final int`
  `FIXED_NONE_CYCLIC`
  Indicates that the list is not fixed in place but cycles its elements
  `static final int`
  `FIXED_NONE_ONE_ELEMENT_MARGIN_FROM_EDGE`
  Indicates the list selection will only reach the edge when there are no more elements in the list.
  `static final int`
  `FIXED_TRAIL`
  Indicates the list selection is fixed into place at the bottom of the list or at the right of the list
  `static final int`
  `HORIZONTAL`
  Indicates the list orientation is HORIZONTAL
  `static final int`
  `VERTICAL`
  Indicates the list orientation is VERTICAL

  ### Fields inherited from class Component

  `BASELINE, BOTTOM, BRB_CENTER_OFFSET, BRB_CONSTANT_ASCENT, BRB_CONSTANT_DESCENT, BRB_OTHER, CENTER, CROSSHAIR_CURSOR, DEFAULT_CURSOR, DRAG_REGION_IMMEDIATELY_DRAG_X, DRAG_REGION_IMMEDIATELY_DRAG_XY, DRAG_REGION_IMMEDIATELY_DRAG_Y, DRAG_REGION_LIKELY_DRAG_X, DRAG_REGION_LIKELY_DRAG_XY, DRAG_REGION_LIKELY_DRAG_Y, DRAG_REGION_NOT_DRAGGABLE, DRAG_REGION_POSSIBLE_DRAG_X, DRAG_REGION_POSSIBLE_DRAG_XY, DRAG_REGION_POSSIBLE_DRAG_Y, E_RESIZE_CURSOR, HAND_CURSOR, LEFT, MOVE_CURSOR, N_RESIZE_CURSOR, NE_RESIZE_CURSOR, NW_RESIZE_CURSOR, RIGHT, S_RESIZE_CURSOR, SE_RESIZE_CURSOR, SW_RESIZE_CURSOR, TEXT_CURSOR, TOP, W_RESIZE_CURSOR, WAIT_CURSOR`
  Modifier and Type
  Field
  Description
  `static final int`
  `BASELINE`
  Alignment to the baseline constraint
  `static final int`
  `BOTTOM`
  Box-orientation constant used to specify the bottom of a box.
  `static final int`
  `BRB_CENTER_OFFSET`
  Baseline resize behavior constant used to properly align components.
  `static final int`
  `BRB_CONSTANT_ASCENT`
  Baseline resize behavior constant used to properly align components.
  `static final int`
  `BRB_CONSTANT_DESCENT`
  Baseline resize behavior constant used to properly align components.
  `static final int`
  `BRB_OTHER`
  Baseline resize behavior constant used to properly align components.
  `static final int`
  `CENTER`
  Indicates a Component center alignment
  `static final int`
  `CROSSHAIR_CURSOR`
  The crosshair cursor type.
  `static final int`
  `DEFAULT_CURSOR`
  The default cursor
  `static final int`
  `DRAG_REGION_IMMEDIATELY_DRAG_X`
  Used by getDragRegionStatus to indicate immediate dragability
  `static final int`
  `DRAG_REGION_IMMEDIATELY_DRAG_XY`
  Used by getDragRegionStatus to indicate immediate dragability
  `static final int`
  `DRAG_REGION_IMMEDIATELY_DRAG_Y`
  Used by getDragRegionStatus to indicate immediate dragability
  `static final int`
  `DRAG_REGION_LIKELY_DRAG_X`
  Used by getDragRegionStatus to indicate likely dragability
  `static final int`
  `DRAG_REGION_LIKELY_DRAG_XY`
  Used by getDragRegionStatus to indicate likely dragability
  `static final int`
  `DRAG_REGION_LIKELY_DRAG_Y`
  Used by getDragRegionStatus to indicate likely dragability
  `static final int`
  `DRAG_REGION_NOT_DRAGGABLE`
  Used by getDragRegionStatus to indicate no dragability
  `static final int`
  `DRAG_REGION_POSSIBLE_DRAG_X`
  Used by getDragRegionStatus to indicate limited dragability
  `static final int`
  `DRAG_REGION_POSSIBLE_DRAG_XY`
  Used by getDragRegionStatus to indicate limited dragability
  `static final int`
  `DRAG_REGION_POSSIBLE_DRAG_Y`
  Used by getDragRegionStatus to indicate limited dragability
  `static final int`
  `E_RESIZE_CURSOR`
  The east-resize cursor type.
  `static final int`
  `HAND_CURSOR`
  The hand cursor type.
  `static final int`
  `LEFT`
  Box-orientation constant used to specify the left side of a box.
  `static final int`
  `MOVE_CURSOR`
  The move cursor type.
  `static final int`
  `N_RESIZE_CURSOR`
  The north-resize cursor type.
  `static final int`
  `NE_RESIZE_CURSOR`
  The north-east-resize cursor type.
  `static final int`
  `NW_RESIZE_CURSOR`
  The north-west-resize cursor type.
  `static final int`
  `RIGHT`
  Box-orientation constant used to specify the right side of a box.
  `static final int`
  `S_RESIZE_CURSOR`
  The south-resize cursor type.
  `static final int`
  `SE_RESIZE_CURSOR`
  The south-east-resize cursor type.
  `static final int`
  `SW_RESIZE_CURSOR`
  The south-west-resize cursor type.
  `static final int`
  `TEXT_CURSOR`
  The text cursor type.
  `static final int`
  `TOP`
  Box-orientation constant used to specify the top of a box.
  `static final int`
  `W_RESIZE_CURSOR`
  The west-resize cursor type.
  `static final int`
  `WAIT_CURSOR`
  The wait cursor type.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `List()`
  Creates a new instance of List with an empty default model
  `List(ListModel model)`
  Creates a new instance of List with the given model
  `List(Vector items)`
  Creates a new instance of List
  `List(T... items)`
  Creates a new instance of List

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `addActionListener(ActionListener l)`
  Allows binding a listener to user selection actions
  `void`
  `addItem(T item)`
  Allows adding an element to a list if the underlying model supports this, notice that it is an optional operation and if the model does not support it (default list model does) then this operation may failed.
  `void`
  `addSelectionListener(SelectionListener l)`
  Invoked to indicate interest in future selection events
  `boolean`
  `animate()`
  Allows the animation to reduce "repaint" calls when it returns false.
  `protected Dimension`
  `calcPreferredSize()`
  Calculates the preferred size based on component content.
  `protected void`
  `fireActionEvent()`
  Fires an action event for the current event source.
  `protected void`
  `fireActionEvent(ActionEvent a)`
  Triggers the event to the listeners
  `protected void`
  `fireClicked()`
  When working in 3 softbutton mode "fire" key (center softbutton) is sent to this method in order to allow 3 button devices to work properly.
  `Vector`
  `getActionListeners()`
  This method allows extracting the action listeners from the current list
  `int`
  `getCurrentSelected()`
  Returns the visual selection during a drag operation, otherwise equivalent to model.getSelectedIndex
  `protected int`
  `getDragRegionStatus(int x, int y)`
  Indicates if the section within the X/Y area is a "drag region" where we expect people to drag or press in which case we can instantly start dragging making perceived performance faster.
  `int`
  `getFixedSelection()`
  Indicates whether selection is fixable to place in which case all the elements in the list move and selection stays in place.
  `protected int`
  `getGridPosX()`
  This method should be implemented correctly by subclasses to make snap to grid functionality work as expected.
  `protected int`
  `getGridPosY()`
  This method should be implemented correctly by subclasses to make snap to grid functionality work as expected.
  `String`
  `getHint()`
  Returns the hint text
  `Image`
  `getHintIcon()`
  Returns the hint icon
  `int`
  `getItemGap()`
  Returns the gap between items
  `Collection`
  `getListeners()`
  This method allows extracting the action listeners from the current list
  `int`
  `getListSizeCalculationSampleCount()`
  Indicates the number of elements the list should check to determine the element sizes.
  `int`
  `getMaxElementHeight()`
  Maximum number of elements shown in a list, this member is used to calculate the list preferred size.
  `int`
  `getMinElementHeight()`
  Minimum number of elements shown in a list, this member is used to calculate the list preferred size.
  `ListModel<T>`
  `getModel()`
  Returns the model underlying the list
  `int`
  `getOrientation()`
  Returns the list orientation
  `final ListCellRenderer`
  `getRenderer()`
  Returns the renderer which is used to draw list elements
  `T`
  `getRenderingPrototype()`
  See set rendering prototype
  `int`
  `getSelectedIndex()`
  Returns the current selected offset in the list
  `T`
  `getSelectedItem()`
  Returns the current selected item in the list or null for no selection
  `Rectangle`
  `getSelectedRect()`
  Returns the component bounds with absolute screen coordinates, for components that include an internal selection behavior and are not containers (currently only List) this method allows returning the position of the selection itself which is useful for things such as the popup dialog and similar UI's that need to reference the position of the selection externally
  `int`
  `getSideGap()`
  Returns the gap to be left for the side scrollbar on the Y axis.
  `protected Rectangle`
  `getVisibleBounds()`
  Returns the component bounds for scrolling which might differ from the getBounds for large components e.g.
  `protected void`
  `initLaf(UIManager uim)`
  This method initializes the Component defaults constants
  `boolean`
  `isCommandList()`
  Indicates that the list should be treated as a list of commands, if the user "clicks" a command from the list its action performed method is invoked.
  `static boolean`
  `isDefaultFireOnClick()`
  Default value for the fire on click behavior
  `static boolean`
  `isDefaultIgnoreFocusComponentWhenUnfocused()`
  Indicates whether the list should not paint the focus component if the list itself has no focus.
  `boolean`
  `isIgnoreFocusComponentWhenUnfocused()`
  Indicates whether the list should not paint the focus component if the list itself has no focus.
  `boolean`
  `isLongPointerPressActionEnabled()`
  Enable/disable list action on long pointer press event
  `boolean`
  `isMutableRendererBackgrounds()`
  Indicates that the background of a cell renderer might mutate between one entry and the next, it is recommended that this flag remains false for performance reasons.
  `boolean`
  `isNumericKeyActions()`
  Indicate whether pressing the number keys should trigger an action
  `boolean`
  `isScrollableX()`
  Indicates whether the component should/could scroll on the X axis
  `boolean`
  `isScrollableY()`
  Indicates whether the component should/could scroll on the Y axis
  `protected boolean`
  `isSelectableInteraction()`
  This method allows a component to indicate that it is interested in an "implicit" select command to appear in the "fire" button when 3 softbuttons are defined in a device.
  `protected boolean`
  `isTactileTouch(int x, int y)`
  Elaborate components might not provide tactile feedback for all their areas (e.g. Lists) this method defaults to returning the value of isTactileTouch
  `void`
  `keyPressed(int keyCode)`
  If this Component is focused, the key pressed event will call this method
  `void`
  `keyReleased(int keyCode)`
  If this Component is focused, the key released event will call this method
  `protected void`
  `laidOut()`
  This is a callback method to inform the Component when it's been laidout on the parent Container
  `protected void`
  `listSelectionChanged(int oldSelected, int newSelected)`
  Callback to allow subclasses to react to a selection change in the model
  `void`
  `longPointerPress(int x, int y)`
  If this Component is focused this method is invoked when the user presses and holds the pointer on the Component
  `protected void`
  `modelChanged(int status, int index)`
  Callback to allow subclasses to react to a change in the model
  `void`
  `paint(Graphics g)`
  This method paints the Component on the screen, it should be overriden by subclasses to perform custom drawing or invoke the UI API's to let the PLAF perform the rendering.
  `protected String`
  `paramString()`
  Returns a string representing the state of this component.
  `void`
  `pointerDragged(int x, int y)`
  If this Component is focused, the pointer dragged event will call this method
  `void`
  `pointerHover(int[] x, int[] y)`
  Invoked for devices where the pointer can hover without actually clicking the display.
  `void`
  `pointerHoverReleased(int[] x, int[] y)`
  Invoked for devices where the pointer can hover without actually clicking the display.
  `void`
  `pointerPressed(int x, int y)`
  If this Component is focused, the pointer pressed event will call this method
  `void`
  `pointerReleased(int x, int y)`
  If this Component is focused, the pointer released event will call this method
  `void`
  `refreshTheme(boolean merge)`
  Makes sure the component is up to date with the current theme, ONLY INVOKE THIS METHOD IF YOU CHANGED THE THEME!
  `void`
  `removeActionListener(ActionListener l)`
  Allows binding a listener to user selection actions
  `void`
  `removeSelectionListener(SelectionListener l)`
  Invoked to indicate no further interest in future selection events
  `void`
  `scrollRectToVisible(Rectangle rect)`
  Makes sure the selected index is visible if it is not in the current view rect the list will scroll so it fits within
  `void`
  `setCommandList(boolean commandList)`
  Indicates that the list should be treated as a list of commands, if the user "clicks" a command from the list its action performed method is invoked.
  `static void`
  `setDefaultFireOnClick(boolean aDefaultFireOnClick)`
  Default value for the fire on click behavior
  `static void`
  `setDefaultIgnoreFocusComponentWhenUnfocused(boolean aDefaultIgnoreFocusComponentWhenUnfocused)`
  Indicates whether the list should not paint the focus component if the list itself has no focus.
  `void`
  `setFireOnClick(boolean fireOnClick)`
  This method determines if the List fires the action event when the pointer was clicked on one of the items, or only if the item was the selected item By default the value is true, this setting is only relevant for none fixed Lists
  `void`
  `setFixedSelection(int fixedSelection)`
  Indicates whether selection is fixable to place in which case all the elements in the list move and selection stays in place.
  `void`
  `setHandlesInput(boolean b)`
  Prevents key events from being grabbed for focus traversal.
  `void`
  `setHint(String hint)`
  Sets the TextArea hint text, the hint text is displayed on the TextArea When there is no text in the TextArea
  `void`
  `setHint(String hint, Image icon)`
  Sets the TextArea hint text and Icon, the hint text and icon are displayed on the TextArea when there is no text in the TextArea
  `void`
  `setHintIcon(Image icon)`
  Sets the TextArea hint icon, the hint is displayed on the TextArea When there is no text in the TextArea
  `void`
  `setIgnoreFocusComponentWhenUnfocused(boolean ignoreFocusComponentWhenUnfocused)`
  Indicates whether the list should not paint the focus component if the list itself has no focus.
  `void`
  `setInputOnFocus(boolean inputOnFocus)`
  A list can start handling input implicitly upon gaining focus, this can make for a more intuitive UI when no other focus elements exist or when their use case is infrequent.
  `void`
  `setItemGap(int itemGap)`
  Set the gap between items
  `void`
  `setListCellRenderer(ListCellRenderer renderer)`
  Sets the renderer which is used to draw list elements
  `void`
  `setListSizeCalculationSampleCount(int listSizeCalculationSampleCount)`
  Indicates the number of elements the list should check to determine the element sizes.
  `void`
  `setLongPointerPressActionEnabled(boolean longPointerPressAction)`
  Enable/disable list action on long pointer press event
  `void`
  `setMaxElementHeight(int maxElementHeight)`
  Maximum number of elements shown in a list, this member is used to calculate the list preferred size.
  `void`
  `setMinElementHeight(int minElementHeight)`
  Minimum number of elements shown in a list, this member is used to calculate the list preferred size.
  `void`
  `setModel(ListModel model)`
  Replaces/sets the model underlying the list
  `void`
  `setMutableRendererBackgrounds(boolean mutableRendererBackgrounds)`
  Indicates that the background of a cell renderer might mutate between one entry and the next, it is recommended that this flag remains false for performance reasons.
  `void`
  `setNumericKeyActions(boolean numericKeyActions)`
  Indicate whether pressing the number keys should trigger an action
  `void`
  `setOrientation(int orientation)`
  Sets the list orientation HORIZONTAL or VERTICAL
  `void`
  `setPaintFocusBehindList(boolean paintFocusBehindList)`
  This method determines if the animated focus is drawn on top of the List or behind the List when moving.
  `final void`
  `setRenderer(ListCellRenderer renderer)`
  Sets the renderer which is used to draw list elements
  `void`
  `setRenderingPrototype(T renderingPrototype)`
  The rendering prototype is optionally used in calculating the size of the List and is recommended for performance reasons.
  `void`
  `setScrollToSelected(boolean scrollToSelected)`
  This flag indicates to the List if the List should scroll to the selected element when it's been initialized.
  `void`
  `setSelectedIndex(int index)`
  Sets the current selected offset in the list, by default this implementation will scroll the list to the selection if the selection is outside of the screen
  `void`
  `setSelectedIndex(int index, boolean scrollToSelection)`
  Sets the current selected offset in the list
  `void`
  `setSelectedItem(T item)`
  Sets the current selected item in the list
  `void`
  `setShouldCalcPreferredSize(boolean shouldCalcPreferredSize)`
  Indicates the values within the component have changed and preferred size should be recalculated
  `protected boolean`
  `shouldRenderSelection()`
  Allows subclasses to override the selection rendering for the component, specifically the spinner in some themes
  `int`
  `size()`
  Returns the number of elements in the list, shorthand for getModel().getSize()

  ### Methods inherited from class Component

  `addDragFinishedListener, addDragOverListener, addDropListener, addFocusListener, addLongPressListener, addPointerDraggedListener, addPointerPressedListener, addPointerReleasedListener, addPullToRefresh, addScrollListener, addStateChangeListener, announceForAccessibility, bindProperty, blocksSideSwipe, calcScrollSize, cancelRepaints, clearClientProperties, contains, containsOrOwns, createStyleAnimation, deinitialize, deinitializeCustomStyle, dragEnter, dragExit, dragFinished, draggingOver, dragInitiated, drawDraggedImage, drop, focusGained, focusLost, getAbsoluteX, getAbsoluteY, getAccessibilityText, getAllStyles, getAnimationManager, getBaseline, getBaselineResizeBehavior, getBindablePropertyNames, getBindablePropertyTypes, getBorder, getBottomGap, getBoundPropertyValue, getBounds, getBounds, getClientProperty, getCloudBoundProperty, getCloudDestinationProperty, getComponentForm, getComponentState, getCursor, getDefaultDragTransparency, getDirtyRegion, getDisabledStyle, getDraggedx, getDraggedy, getDragImage, getDragSpeed, getDragTransparency, getEditingDelegate, getHeight, getInlineAllStyles, getInlineDisabledStyles, getInlinePressedStyles, getInlineSelectedStyles, getInlineStylesTheme, getInlineUnselectedStyles, getInnerHeight, getInnerPreferredH, getInnerPreferredW, getInnerWidth, getInnerX, getInnerY, getLabelForComponent, getName, getNativeOverlay, getNextFocusDown, getNextFocusLeft, getNextFocusRight, getNextFocusUp, getOuterHeight, getOuterPreferredH, getOuterPreferredW, getOuterWidth, getOuterX, getOuterY, getOwner, getParent, getPreferredH, getPreferredSize, getPreferredSizeStr, getPreferredTabIndex, getPreferredW, getPressedStyle, getPropertyNames, getPropertyTypeNames, getPropertyTypes, getPropertyValue, getSameHeight, getSameWidth, getScrollable, getScrollAnimationSpeed, getScrollDimension, getScrollOpacity, getScrollOpacityChangeSpeed, getScrollX, getScrollY, getSelectCommandText, getSelectedStyle, getStyle, getTabIndex, getTensileLength, getTextSelectionSupport, getTooltip, getUIID, getUIManager, getUnselectedStyle, getVisibleBounds, getWidth, getX, getY, growShrink, handlesInput, hasFixedPreferredSize, hasFocus, hideNativeOverlay, initComponent, initCustomStyle, initDisabledStyle, initPressedStyle, initSelectedStyle, initUnselectedStyle, installDefaultPainter, isAlwaysTensile, isBlockLead, isCellRenderer, isChildOf, isDragActivated, isDragAndDropOperation, isDraggable, isDragRegion, isDropTarget, isEditable, isEditing, isEnabled, isFlatten, isFocusable, isGrabsPointerEvents, isHidden, isHidden, isHideInLandscape, isHideInPortrait, isIgnorePointerEvents, isInClippingRegion, isInitialized, isOpaque, isOwnedBy, isPinchBlocksDragAndDrop, isRippleEffect, isRTL, isScrollable, isScrollVisible, isSetCursorSupported, isSmoothScrolling, isSnapToGrid, isStickyDrag, isTactileTouch, isTensileDragEnabled, isTraversable, isVisible, keyRepeated, longKeyPress, onScrollX, onScrollY, onSetFocusable, paintBackground, paintBackgrounds, paintBorder, paintBorderBackground, paintComponent, paintComponent, paintIntersectingComponentsAbove, paintLock, paintLockRelease, paintRippleOverlay, paintScrollbars, paintScrollbarX, paintScrollbarY, paintShadows, parsePreferredSize, pinch, pinch, pinchReleased, pointerDragged, pointerHoverPressed, pointerPressed, pointerReleased, putClientProperty, refreshTheme, refreshTheme, remove, removeDragFinishedListener, removeDragOverListener, removeDropListener, removeFocusListener, removeLongPressListener, removePointerDraggedListener, removePointerPressedListener, removePointerReleasedListener, removeScrollListener, removeStateChangeListener, repaint, repaint, requestFocus, resetFocusable, respondsToPointerEvents, scrollRectToVisible, scrollRectToVisible, setAccessibilityText, setAlwaysTensile, setBlockLead, setBoundPropertyValue, setCellRenderer, setCloudBoundProperty, setCloudDestinationProperty, setComponentState, setCursor, setDefaultDragTransparency, setDirtyRegion, setDisabledStyle, setDraggable, setDragTransparency, setDropTarget, setEditingDelegate, setEnabled, setFlatten, setFocus, setFocusable, setGrabsPointerEvents, setHeight, setHidden, setHidden, setHideInLandscape, setHideInPortrait, setIgnorePointerEvents, setInitialized, setInlineAllStyles, setInlineDisabledStyles, setInlinePressedStyles, setInlineSelectedStyles, setInlineStylesTheme, setInlineUnselectedStyles, setIsScrollVisible, setLabelForComponent, setName, setNextFocusDown, setNextFocusLeft, setNextFocusRight, setNextFocusUp, setOpaque, setOwner, setPinchBlocksDragAndDrop, setPreferredH, setPreferredSize, setPreferredSizeStr, setPreferredTabIndex, setPreferredW, setPressedStyle, setPropertyValue, setRippleEffect, setRTL, setSameHeight, setSameSize, setSameWidth, setScrollAnimationSpeed, setScrollOpacityChangeSpeed, setScrollSize, setScrollVisible, setScrollX, setScrollY, setSelectCommandText, setSelectedStyle, setSize, setSmoothScrolling, setSnapToGrid, setTabIndex, setTactileTouch, setTensileDragEnabled, setTensileLength, setTooltip, setTraversable, setUIID, setUIID, setUIIDFinal, setUnselectedStyle, setVisible, setWidth, setX, setY, shouldBlockSideSwipe, shouldBlockSideSwipeLeft, shouldBlockSideSwipeRight, shouldRenderComponentSelection, showNativeOverlay, startEditingAsync, stopEditing, stripMarginAndPadding, styleChanged, toImage, toString, unbindProperty, updateNativeOverlay, visibleBoundsContains`
  Modifier and Type
  Method
  Description
  `void`
  `addDragFinishedListener(ActionListener l)`
  Adds a listener to the dragFinished event
  `void`
  `addDragOverListener(ActionListener l)`
  Broadcasts an event when dragging over a component
  `void`
  `addDropListener(ActionListener l)`
  Binds an action listener to drop events which are invoked when this component is dropped on a target
  `void`
  `addFocusListener(FocusListener l)`
  Registers interest in receiving callbacks for focus gained events, a focus event is invoked when the component accepts the focus.
  `void`
  `addLongPressListener(ActionListener l)`
  Adds a listener to the pointer event
  `void`
  `addPointerDraggedListener(ActionListener l)`
  Adds a listener to the pointer event
  `void`
  `addPointerPressedListener(ActionListener l)`
  Adds a listener to the pointer event
  `void`
  `addPointerReleasedListener(ActionListener l)`
  Adds a listener to the pointer event
  `void`
  `addPullToRefresh(Runnable task)`
  This method adds a refresh task to the Component, the task will be executed if the user has pulled the scroll beyond a certain height.
  `void`
  `addScrollListener(ScrollListener l)`
  Registers interest in receiving callbacks for scroll gained events, a scroll event is invoked when the component is scrolled.
  `void`
  `addStateChangeListener(ActionListener<ComponentStateChangeEvent> l)`
  Adds a listener to be notified when the state of this component is changed to and from initialized.
  `void`
  `announceForAccessibility(String text)`
  Manually announces text to native accessibility services, associating the announcement with this component when possible.
  `void`
  `bindProperty(String prop, BindTarget target)`
  Binds the given property name to the given bind target
  `final boolean`
  `blocksSideSwipe()`
  A component that might need side swipe such as the slider could block it from being used for some other purpose when on top of said component.
  `protected Dimension`
  `calcScrollSize()`
  Method that can be overriden to represent the actual size of the component when it differs from the desireable size for the viewport
  `protected void`
  `cancelRepaints()`
  remove this component from the painting queue
  `void`
  `clearClientProperties()`
  Clears all client properties from this Component
  `boolean`
  `contains(int x, int y)`
  Returns true if the given absolute coordinate is contained in the Component
  `boolean`
  `containsOrOwns(int x, int y)`
  Checks to see if this component either contains the given point, or if it owns the component that contains the given point.
  `ComponentAnimation`
  `createStyleAnimation(String destUIID, int duration)`
  Creates an animation that will transform the current component to the styling of the destination UIID when completed.
  `protected void`
  `deinitialize()`
  Invoked to indicate that the component initialization is being reversed since the component was detached from the container hierarchy.
  `protected void`
  `deinitializeCustomStyle(Style s)`
  Allows components to create a style of their own, this method cleans up state for the given style
  `protected void`
  `dragEnter(Component dragged)`
  This callback method indicates that a component drag has just entered this component
  `protected void`
  `dragExit(Component dragged)`
  This callback method provides an indication for a drop target that a drag operation is exiting the bounds of this component and it should clear all relevant state if such state exists.
  `protected void`
  `dragFinished(int x, int y)`
  Callback indicating that the drag has finished either via drop or by releasing the component
  `protected boolean`
  `draggingOver(Component dragged, int x, int y)`
  This method allows a component to indicate if it is a drop target for the given component at the given x/y location (in component coordiate space).
  `protected void`
  `dragInitiated()`
  Invoked on the focus component to let it know that drag has started on the parent container for the case of a component that doesn't support scrolling
  `protected void`
  `drawDraggedImage(Graphics g, Image img, int x, int y)`
  Draws the given image at x/y, this method can be overriden to draw additional information such as positive or negative drop indication
  `void`
  `drop(Component dragged, int x, int y)`
  Performs a drop operation of the component at the given X/Y location in coordinate space, this method should be overriden by subclasses to perform all of the logic related to moving a component, by default this method does nothing and so dragging a component and dropping it has no effect
  `protected void`
  `focusGained()`
  Callback allowing a developer to track when the component gains focus
  `protected void`
  `focusLost()`
  Callback allowing a developer to track wheh the component loses focus
  `int`
  `getAbsoluteX()`
  Returns the absolute X location based on the component hierarchy, this method calculates a location on the screen for the component rather than a relative location as returned by getX()
  `int`
  `getAbsoluteY()`
  Returns the absolute Y location based on the component hierarchy, this method calculates a location on the screen for the component rather than a relative location as returned by getX()
  `String`
  `getAccessibilityText()`
  Returns the text that describes this component to assistive technologies.
  `final Style`
  `getAllStyles()`
  Returns a "meta style" that allows setting styles once to all the different Style objects, the getters for this style will be meaningless and will return 0 values.
  `AnimationManager`
  `getAnimationManager()`
  Returns the animation manager of the parent form or null if this component isn't currently associated with a form
  `int`
  `getBaseline(int width, int height)`
  The baseline for the component text according to which it should be aligned with other components for best visual look.
  `int`
  `getBaselineResizeBehavior()`
  Returns a constant indicating how the baseline varies with the size of the component.
  `String[]`
  `getBindablePropertyNames()`
  Returns the names of the properties within this component that can be bound for persistence, the order of these names mean that the first one will be the first bound
  `Class[]`
  `getBindablePropertyTypes()`
  Returns the types of the properties that are bindable within this component
  `protected Border`
  `getBorder()`
  Normally returns getStyle().getBorder() but some subclasses might use this to programmatically replace the border in runtime e.g.
  `int`
  `getBottomGap()`
  Returns the gap to be left for the bottom scrollbar on the X axis.
  `Object`
  `getBoundPropertyValue(String prop)`
  Allows the binding code to extract the value of the property
  `protected Rectangle`
  `getBounds()`
  Returns the component bounds which is sometimes more convenient than invoking getX/Y/Width/Height.
  `Rectangle`
  `getBounds(Rectangle rect)`
  Returns the bounds of this component in the provided Rectangle.
  `Object`
  `getClientProperty(String key)`
  Client properties allow the association of meta-data with a component, this is useful for some applications that construct GUI's on the fly and need to track the connection between the UI and the data.
  `String`
  `getCloudBoundProperty()`
  Indicates the property within this component that should be bound to the cloud object
  `String`
  `getCloudDestinationProperty()`
  The destination property of the CloudObject
  `Form`
  `getComponentForm()`
  Returns the Component Form or null if this Component is not added yet to a form
  `Object`
  `getComponentState()`
  Some components may optionally generate a state which can then be restored using setCompnentState().
  `int`
  `getCursor()`
  Gets the custom cursor for this component.
  `static byte`
  `getDefaultDragTransparency()`
  Returns the default translucency used in the `#getDragImage()` method.
  `final Rectangle`
  `getDirtyRegion()`
  gets the Component dirty region, this method is for internal use only and SHOULD NOT be invoked by user code.
  `Style`
  `getDisabledStyle()`
  Returns the Component Style for the disabled state allowing us to manipulate the look of the component when its disabled
  `int`
  `getDraggedx()`
  Gets the current dragged x values when the Component is being dragged
  `int`
  `getDraggedy()`
  Gets the current dragged y values when the Component is being dragged
  `protected Image`
  `getDragImage()`
  This method returns an image representing the dragged component, it can be overriden by subclasses to customize the look of the image, the image will be overlaid on top of the form during a drag and drop operation
  `protected float`
  `getDragSpeed(boolean vertical)`
  This method returns the dragging speed based on the latest dragged events
  `byte`
  `getDragTransparency()`
  Returns the translucency used in the `#getDragImage()` method.
  `Editable`
  `getEditingDelegate()`
  Gets the delegate that handles the editing of this component.
  `int`
  `getHeight()`
  Returns the component height
  `String`
  `getInlineAllStyles()`
  Gets inline styles that are to be applied to all states of this component.
  `String`
  `getInlineDisabledStyles()`
  Gets inline styles that are to be applied to the disabled state of this component.
  `String`
  `getInlinePressedStyles()`
  Gets inline styles that are to be applied to the pressed state of this component.
  `String`
  `getInlineSelectedStyles()`
  Gets inline styles that are to be applied to the selected state of this component.
  `Resources`
  `getInlineStylesTheme()`
  Gets the theme that is used by inline styles to reference images.
  `String`
  `getInlineUnselectedStyles()`
  Gets inline styles that are to be applied to the unselected state of this component.
  `int`
  `getInnerHeight()`
  Gets the inner height of this component.
  `int`
  `getInnerPreferredH()`
  Gets the preferred height removing vertical padding.
  `int`
  `getInnerPreferredW()`
  Gets the preferred width removing horizontal padding.
  `int`
  `getInnerWidth()`
  Gets the inner width of this component.
  `int`
  `getInnerX()`
  Gets x-coordinate of the inner bounds of this component.
  `int`
  `getInnerY()`
  Gets the inner y-coordinate of the inner bounds of this component.
  `Label`
  `getLabelForComponent()`
  Allows us to indicate the label associated with this component thus providing visual feedback related for this component e.g.
  `String`
  `getName()`
  A component name allows us to easily identify the component within a dynamic UI.
  `Object`
  `getNativeOverlay()`
  Gets the native overlay for this component.
  `Component`
  `getNextFocusDown()`
  Allows us to determine which component will receive focus next when traversing with the down key
  `Component`
  `getNextFocusLeft()`
  Allows us to determine which component will receive focus next when traversing with the left key.
  `Component`
  `getNextFocusRight()`
  Allows us to determine which component will receive focus next when traversing with the right key
  `Component`
  `getNextFocusUp()`
  Allows us to determine which component will receive focus next when traversing with the up key.
  `int`
  `getOuterHeight()`
  Gets the outer height of this component.
  `int`
  `getOuterPreferredH()`
  Gets the preferred height including the vertical margins.
  `int`
  `getOuterPreferredW()`
  Gets the preferred width including horizontal margins.
  `int`
  `getOuterWidth()`
  Gets the outer width of this component.
  `int`
  `getOuterX()`
  Gets the x-coordinate of the outer bounds of this component.
  `int`
  `getOuterY()`
  Gets the Y-coordinate of the outer bounds of this component.
  `Component`
  `getOwner()`
  Gets the "owner" of this component as set by `#setOwner(com.codename1.ui.Component)`.
  `Container`
  `getParent()`
  Returns the container in which this component is contained
  `int`
  `getPreferredH()`
  Helper method to retrieve the preferred height of the component.
  `Dimension`
  `getPreferredSize()`
  Returns the Component Preferred Size, there is no guarantee the Component will be sized at its Preferred Size.
  `String`
  `getPreferredSizeStr()`
  Returns the preferred size string that can be used to specify the preferred size of the component using pixels or millimetres.
  `int`
  `getPreferredTabIndex()`
  Gets the preferred tab index of this component.
  `int`
  `getPreferredW()`
  Helper method to retrieve the preferred width of the component.
  `Style`
  `getPressedStyle()`
  Returns the Component Style for the pressed state allowing us to manipulate the look of the component when it is pressed
  `String[]`
  `getPropertyNames()`
  A component may expose mutable property names for a UI designer to manipulate, this API is designed for usage internally by the GUI builder code
  `String[]`
  `getPropertyTypeNames()`
  This method is here to workaround an XMLVM array type bug where property types aren't identified properly, it returns the names of the types using the following type names: String,int,double,long,byte,short,char,String[],String[][],byte[],Image,Image[],Object[],ListModel,ListCellRenderer
  `Class[]`
  `getPropertyTypes()`
  Matches the property names method (see that method for further details).
  `Object`
  `getPropertyValue(String name)`
  Returns the current value of the property name, this method is used by the GUI builder
  `Component[]`
  `getSameHeight()`
  Returns the array of components that have an equal height
  `Component[]`
  `getSameWidth()`
  Returns the array of components that have an equal width
  `Component`
  `getScrollable()`
  Returns the scrollable parent of this component
  `int`
  `getScrollAnimationSpeed()`
  Scroll animation speed in milliseconds allowing a developer to slow down or accelerate the smooth animation mode
  `Dimension`
  `getScrollDimension()`
  Returns the Components dimension in scrolling, this is very similar to the preferred size aspect only it represents actual scrolling limits.
  `int`
  `getScrollOpacity()`
  This method is used internally by the look and feel to implement the fading scrollbar behavior.
  `int`
  `getScrollOpacityChangeSpeed()`
  Indicates the decrement units for the scroll opacity
  `int`
  `getScrollX()`
  Indicates the X position of the scrolling, this number is relative to the component position and so a position of 0 would indicate the x position of the component.
  `int`
  `getScrollY()`
  Indicates the Y position of the scrolling, this number is relative to the component position and so a position of 0 would indicate the y position of the component.
  `String`
  `getSelectCommandText()`
  Allows determining the text for the select command used in the 3rd softbutton mode.
  `Style`
  `getSelectedStyle()`
  Returns the Component Style for the selected state allowing us to manipulate the look of the component when it owns focus
  `Style`
  `getStyle()`
  Returns the current Component Style allowing code to draw the current component, you should normally use getUnselected/Pressed/DisabledStyle() and not this method since it will return different values based on component state.
  `int`
  `getTabIndex()`
  Gets the tab index of the component.
  `int`
  `getTensileLength()`
  Recommended length for the tensile, -1 for default
  `TextSelection.TextSelectionSupport`
  `getTextSelectionSupport()`
  Returns text selection support object for this component.
  `String`
  `getTooltip()`

  ###### Returns

  `final String`
  `getUIID()`
  Unique identifier for a component.
  `UIManager`
  `getUIManager()`
  This method should be used by the Component to retrieve the correct UIManager to work with
  `final Style`
  `getUnselectedStyle()`
  Returns the Component Style for the unselected mode allowing us to manipulate the look of the component
  `Rectangle`
  `getVisibleBounds(Rectangle rect)`
  Returns the component bounds for scrolling which might differ from the getBounds for large components into the provided rectangle.
  `int`
  `getWidth()`
  Returns the component width
  `int`
  `getX()`
  Returns the current component x location relatively to its parent container
  `int`
  `getY()`
  Returns the component y location relatively to its parent container
  `void`
  `growShrink(int duration)`
  Grows or shrinks this component to its new preferred size, this method essentially takes a component whose preferred size has changed and creates a "growing" effect that lasts for the duration.
  `boolean`
  `handlesInput()`
  Prevents key events from being grabbed for focus traversal.
  `boolean`
  `hasFixedPreferredSize()`
  Checks if this component has a fixed preferred size either via an explicit call to `#setPreferredH(int)` and `#setPreferredW(int)`, or via a preferred size style string.
  `boolean`
  `hasFocus()`
  Returns true if the component has focus
  `protected void`
  `hideNativeOverlay()`
  Hides the native overlay for this component.
  `protected void`
  `initComponent()`
  Allows subclasses to bind functionality that relies on fully initialized and "ready for action" component state
  `protected void`
  `initCustomStyle(Style s)`
  Allows components to create a style of their own, this method binds the listener to the style and installs a bg painter
  `protected void`
  `initDisabledStyle(Style disabledStyle)`
  Can be overridden by subclasses to perform initialization when the disabled style is set to a new value.
  `protected void`
  `initPressedStyle(Style pressedStyle)`
  Can be overridden by subclasses to perform initialization when the pressed style is set to a new value.
  `protected void`
  `initSelectedStyle(Style selectedStyle)`
  Can be overridden by subclasses to perform initialization when the selected style is set to a new value.
  `protected void`
  `initUnselectedStyle(Style unselectedStyle)`
  Can be overridden by subclasses to perform initialization when the unselected style is set to a new value.
  `protected void`
  `installDefaultPainter(Style s)`
  Allows subclasses to create their own custom style types and install the background painter into them
  `boolean`
  `isAlwaysTensile()`
  Enable the tensile drag to work even when a component doesn't have a scroll showable (scrollable flag still needs to be set to true)
  `boolean`
  `isBlockLead()`
  Prevent a lead component hierarchy from this specific component, this allows a component within that hierarchy to still act as a standalone component
  `boolean`
  `isCellRenderer()`
  Used as an optimization to mark that this component is currently being used as a cell renderer
  `boolean`
  `isChildOf(Container cnt)`
  Searches the hierarchy of the component recursively to see if the given Container is one of the parents of this component
  `protected boolean`
  `isDragActivated()`
  Indicates whether we are in the middle of a drag operation, this method allows developers overriding the pointer released events to know when this is a drag operation.
  `protected boolean`
  `isDragAndDropOperation(int x, int y)`
  This method allows a developer to define only a specific portion of a component as draggable by default it returns true if the component is defined as "draggable"
  `boolean`
  `isDraggable()`
  Indicates whether this component can be dragged in a drag and drop operation rather than scroll the parent
  `protected boolean`
  `isDragRegion(int x, int y)`
  Indicates if the section within the X/Y area is a "drag region" where we expect people to drag and never actually "press" in which case we can instantly start dragging making perceived performance faster.
  `boolean`
  `isDropTarget()`
  Indicates whether this component can receive dropped components into it, notice that when dropping on a component or container the parents will be checked recursively to find a valid drop target
  `boolean`
  `isEditable()`
  Checks to see if the component is editable.
  `boolean`
  `isEditing()`
  Checks if the component is currently being edited.
  `boolean`
  `isEnabled()`
  Indicates whether component is enabled or disabled thus allowing us to prevent a component from receiving input events and indicate so visually
  `boolean`
  `isFlatten()`
  Makes the component effectively opaque by blending the backgrounds into an image in memory so the layer of underlying components is only drawn once when this component is repainted.
  `boolean`
  `isFocusable()`
  Returns true if this component can receive focus and is enabled
  `boolean`
  `isGrabsPointerEvents()`
  This property is useful for blocking in z-order touch events, sometimes we might want to grab touch events in a specific component without making it focusable.
  `boolean`
  `isHidden()`
  Returns true if the component was explicitly hidden by the user.
  `boolean`
  `isHidden(boolean checkParent)`
  Checks if the component is hidden.
  `boolean`
  `isHideInLandscape()`
  Indicates that this component and all its children should be hidden when the device is switched to landscape mode
  `boolean`
  `isHideInPortrait()`
  Indicates that this component and all its children should be hidden when the device is switched to portrait mode
  `boolean`
  `isIgnorePointerEvents()`

  ###### Returns

  `protected boolean`
  `isInClippingRegion(Graphics g)`
  `protected boolean`
  `isInitialized()`
  Indicates if the component is in the initialized state, a component is initialized when its initComponent() method was invoked.
  `boolean`
  `isOpaque()`
  Checks whether the component's background should be painted.
  `boolean`
  `isOwnedBy(Component cmp)`
  Checks to see if this component is owned by the given other component.
  `boolean`
  `isPinchBlocksDragAndDrop()`
  returns true if pinch will block drag and drop
  `boolean`
  `isRippleEffect()`
  Indicates whether the component displays the material design ripple effect
  `final boolean`
  `isRTL()`
  Is the component a bidi RTL component
  `protected boolean`
  `isScrollable()`
  Indicates whether the component should/could scroll by default a component is not scrollable.
  `boolean`
  `isScrollVisible()`
  Indicate whether this component scroll is visible
  `static boolean`
  `isSetCursorSupported()`
  Checks to see if this platform supports cursors.
  `boolean`
  `isSmoothScrolling()`
  Indicates that scrolling through the component should work as an animation
  `boolean`
  `isSnapToGrid()`
  Indicates whether scrolling this component should jump to a specific location in a grid
  `protected boolean`
  `isStickyDrag()`
  Returns true if the component is interested in receiving drag/pointer release events even after the gesture exceeded its boundaries.
  `boolean`
  `isTactileTouch()`
  Indicates whether the component should "trigger" tactile touch when pressed by the user in a touch screen UI.
  `boolean`
  `isTensileDragEnabled()`
  Indicates whether tensile drag (dragging beyond the boundry of the component and snapping back) is enabled for this component.
  `final boolean`
  `isTraversable()`
  Checks if this component should be traversable using the keyboard using tab, next, previous keys.
  `boolean`
  `isVisible()`
  Returns whether the component is visible or not
  `void`
  `keyRepeated(int keyCode)`
  If this Component is focused, the key repeat event will call this method.
  `protected void`
  `longKeyPress(int keyCode)`
  If this Component is focused this method is invoked when the user presses and holds the key
  `protected void`
  `onScrollX(int scrollX)`
  This method can be overriden to receive scroll events, unlike overriding setScrollX it will receive all calls for scrolling.
  `protected void`
  `onScrollY(int scrollY)`
  This method can be overriden to receive scroll events, unlike overriding setScrollY it will receive all calls for scrolling.
  `protected void`
  `onSetFocusable(boolean focusable)`
  Since setFocusable is final this callback is invoked when focusable changes.
  `protected void`
  `paintBackground(Graphics g)`
  This method paints the Component background, it should be overriden by subclasses to perform custom background drawing.
  `void`
  `paintBackgrounds(Graphics g)`
  This method paints all the parents Components Background.
  `protected void`
  `paintBorder(Graphics g)`
  Draws the component border if such a border exists.
  `protected void`
  `paintBorderBackground(Graphics g)`
  Draws the component border background if such a border exists.
  `final void`
  `paintComponent(Graphics g)`
  Paints this component as a root by going to all the parent components and setting the absolute translation based on coordinates and scroll status.
  `final void`
  `paintComponent(Graphics g, boolean background)`
  Paints this component as a root by going to all the parent components and setting the absolute translation based on coordinates and scroll status.
  `void`
  `paintIntersectingComponentsAbove(Graphics g)`
  Paints intersecting components that appear above this component.
  `Image`
  `paintLock(boolean hardLock)`
  This method locks the component so it will always paint the given image instead of running through its paint logic.
  `void`
  `paintLockRelease()`
  Releases the paint lock image to allow paint to work as usual, see paintLock(boolean) for details
  `void`
  `paintRippleOverlay(Graphics g, int x, int y, int position)`
  Invoked to draw the ripple effect overlay in Android where the finger of the user causes a growing circular overlay over time.
  `protected void`
  `paintScrollbars(Graphics g)`
  Paints the UI for the scrollbars on the component, this will be invoked only for scrollable components.
  `protected void`
  `paintScrollbarX(Graphics g)`
  Paints the UI for the scrollbar on the X axis, this method allows component subclasses to customize the look of a scrollbar
  `protected void`
  `paintScrollbarY(Graphics g)`
  Paints the UI for the scrollbar on the Y axis, this method allows component subclasses to customize the look of a scrollbar
  `void`
  `paintShadows(Graphics g, int relativeX, int relativeY)`
  Paints the drop-shadow projections for this component based on its elevation value.
  `static Dimension`
  `parsePreferredSize(String preferredSize, Dimension baseSize)`
  Parses the preferred size given as a string
  `protected boolean`
  `pinch(float scale)`
  Invoked by subclasses interested in handling pinch to zoom events, if true is returned other drag events will not be broadcast
  `protected boolean`
  `pinch(int[] x, int[] y)`
  Invoked by subclasses interested in handling pinch to do their own actions based on the position of the two fingers, if true is returned other drag events will not be broadcast
  `protected void`
  `pinchReleased(int x, int y)`
  To be implemented by subclasses interested in being notified when a pinch zoom has ended (i.e the user has removed one of their fingers, but is still dragging).
  `void`
  `pointerDragged(int[] x, int[] y)`
  If this Component is focused, the pointer dragged event will call this method
  `void`
  `pointerHoverPressed(int[] x, int[] y)`
  Invoked for devices where the pointer can hover without actually clicking the display.
  `void`
  `pointerPressed(int[] x, int[] y)`
  If this Component is focused, the pointer pressed event will call this method
  `void`
  `pointerReleased(int[] x, int[] y)`
  If this Component is focused, the pointer released event will call this method
  `void`
  `putClientProperty(String key, Object value)`
  Client properties allow the association of meta-data with a component, this is useful for some applications that construct GUI's on the fly and need to track the connection between the UI and the data.
  `void`
  `refreshTheme()`
  Makes sure the component is up to date with the current theme, ONLY INVOKE THIS METHOD IF YOU CHANGED THE THEME!
  `protected void`
  `refreshTheme(String id, boolean merge)`
  Makes sure the component is up to date with the given UIID
  `void`
  `remove()`
  This method will remove the Component from its parent.
  `void`
  `removeDragFinishedListener(ActionListener l)`
  Removes the listener from the drag finished event
  `void`
  `removeDragOverListener(ActionListener l)`
  Removes an action listener to drag over events
  `void`
  `removeDropListener(ActionListener l)`
  Removes an action listener to drop events which are invoked when this component is dropped on a target
  `void`
  `removeFocusListener(FocusListener l)`
  Deregisters interest in receiving callbacks for focus gained events
  `void`
  `removeLongPressListener(ActionListener l)`
  Removes the listener from the pointer event
  `void`
  `removePointerDraggedListener(ActionListener l)`
  Removes the listener from the pointer event
  `void`
  `removePointerPressedListener(ActionListener l)`
  Removes the listener from the pointer event
  `void`
  `removePointerReleasedListener(ActionListener l)`
  Removes the listener from the pointer event
  `void`
  `removeScrollListener(ScrollListener l)`
  Deregisters interest in receiving callbacks for scroll gained events
  `void`
  `removeStateChangeListener(ActionListener<ComponentStateChangeEvent> l)`
  Removes a listener from being notified when the state of this component is changed to and from initialized.
  `void`
  `repaint()`
  Repaint this Component, the repaint call causes a callback of the paint method on the event dispatch thread.
  `void`
  `repaint(int x, int y, int w, int h)`
  Repaints a specific region within the component
  `void`
  `requestFocus()`
  Changes the current component to the focused component, will work only for a component that belongs to a parent form.
  `protected void`
  `resetFocusable()`
  Restores the state of the focusable flag to its default state
  `boolean`
  `respondsToPointerEvents()`
  Checks if the component responds to pointer events.
  `void`
  `scrollRectToVisible(int x, int y, int width, int height, Component coordinateSpace)`
  Makes sure the component is visible in the scroll if this container is scrollable
  `protected void`
  `scrollRectToVisible(Rectangle rect, Component coordinateSpace)`
  Makes sure the component is visible in the scroll if this container is scrollable
  `void`
  `setAccessibilityText(String text)`
  Sets the text that describes this component to assistive technologies.
  `void`
  `setAlwaysTensile(boolean alwaysTensile)`
  Enable the tensile drag to work even when a component doesn't have a scroll showable (scrollable flag still needs to be set to true)
  `void`
  `setBlockLead(boolean blockLead)`
  Prevent a lead component hierarchy from this specific component, this allows a component within that hierarchy to still act as a standalone component
  `void`
  `setBoundPropertyValue(String prop, Object value)`
  Sets the value of a bound property within this component, notice that this method MUST NOT fire the property change event when invoked to prevent recursion!
  `void`
  `setCellRenderer(boolean cellRenderer)`
  Used as an optimization to mark that this component is currently being used as a cell renderer
  `void`
  `setCloudBoundProperty(String cloudBoundProperty)`
  Indicates the property within this component that should be bound to the cloud object
  `void`
  `setCloudDestinationProperty(String cloudDestinationProperty)`
  The destination property of the CloudObject
  `void`
  `setComponentState(Object state)`
  If getComponentState returned a value the setter can update the value and restore the prior state.
  `void`
  `setCursor(int cursor)`
  Sets a custom mouse cursor for this component if the platform supports mouse cursors, notice that this isn't applicable for touch devices.
  `static void`
  `setDefaultDragTransparency(byte defaultDragTransparency)`
  Sets the default translucency of the `#getDragImage()` method.
  `final void`
  `setDirtyRegion(Rectangle dirty)`
  sets the Component dirty region, this method is for internal use only and SHOULD NOT be invoked by user code.
  `void`
  `setDisabledStyle(Style style)`
  Changes the Component disalbed Style by replacing the Component Style with the given Style
  `void`
  `setDraggable(boolean draggable)`
  Indicates whether this component can be dragged in a drag and drop operation rather than scroll the parent
  `void`
  `setDragTransparency(byte dragTransparency)`
  Sets the translucency of the `#getDragImage()` method.
  `void`
  `setDropTarget(boolean dropTarget)`
  Indicates whether this component can receive dropped components into it, notice that when dropping on a component or container the parents will be checked recursively to find a valid drop target
  `void`
  `setEditingDelegate(Editable editable)`
  Sets the editing delegate for this component.
  `void`
  `setEnabled(boolean enabled)`
  Indicates whether component is enabled or disabled thus allowing us to prevent a component from receiving input events and indicate so visually
  `void`
  `setFlatten(boolean flatten)`
  Makes the component effectively opaque by blending the backgrounds into an image in memory so the layer of underlying components is only drawn once when this component is repainted.
  `void`
  `setFocus(boolean focused)`
  This flag doesn't really give focus, its a state that determines what colors from the Style should be used when painting the component.
  `final void`
  `setFocusable(boolean focusable)`
  A simple setter to determine if this Component can get focused
  `void`
  `setGrabsPointerEvents(boolean grabsPointerEvents)`
  This property is useful for blocking in z-order touch events, sometimes we might want to grab touch events in a specific component without making it focusable.
  `void`
  `setHeight(int height)`
  Sets the Component height, this method is exposed for the purpose of external layout managers and should not be invoked directly.
  `void`
  `setHidden(boolean b)`
  Makes the components preferred size equal 0 when hidden and restores it to the default size when not.
  `void`
  `setHidden(boolean b, boolean changeMargin)`
  Makes the components preferred size equal 0 when hidden and restores it to the default size when not.
  `void`
  `setHideInLandscape(boolean hideInLandscape)`
  Indicates that this component and all its children should be hidden when the device is switched to landscape mode
  `void`
  `setHideInPortrait(boolean hideInPortrait)`
  Indicates that this component and all its children should be hidden when the device is switched to portrait mode
  `void`
  `setIgnorePointerEvents(boolean ignorePointerEvents)`

  ###### Parameters

  `protected void`
  `setInitialized(boolean initialized)`
  Indicates if the component is in the initialized state, a component is initialized when its initComponent() method was invoked.
  `void`
  `setInlineAllStyles(String styles)`
  Registers inline styles that should be applied to all states of the component.
  `void`
  `setInlineDisabledStyles(String styles)`
  Registers inline styles that should be applied to the disabled state of the component.
  `void`
  `setInlinePressedStyles(String styles)`
  Registers inline styles that should be applied to the pressed state of the component.
  `void`
  `setInlineSelectedStyles(String styles)`
  Registers inline styles that should be applied to the selected state of the component.
  `void`
  `setInlineStylesTheme(Resources inlineStylesTheme)`
  Sets the theme that is used by inline styles to reference images.
  `void`
  `setInlineUnselectedStyles(String styles)`
  Registers inline styles that should be applied to the unselected state of the component.
  `void`
  `setIsScrollVisible(boolean isScrollVisible)`
  Set whether this component scroll is visible
  `void`
  `setLabelForComponent(Label componentLabel)`
  Allows us to indicate the label associated with this component thus providing visual feedback related for this component e.g.
  `void`
  `setName(String name)`
  A component name allows us to easily identify the component within a dynamic UI.
  `void`
  `setNextFocusDown(Component nextFocusDown)`
  Allows us to determine which component will receive focus next when traversing with the down key
  `void`
  `setNextFocusLeft(Component nextFocusLeft)`
  Allows us to determine which component will receive focus next when traversing with the left key, this method doesn't affect the general focus behavior.
  `void`
  `setNextFocusRight(Component nextFocusRight)`
  Allows us to determine which component will receive focus next when traversing with the right key
  `void`
  `setNextFocusUp(Component nextFocusUp)`
  Allows us to determine which component will receive focus next when traversing with the up key, this method doesn't affect the general focus behavior.
  `final void`
  `setOpaque(boolean opaque)`
  Sets whether or not to paint the component background.
  `void`
  `setOwner(Component owner)`
  Sets the owner of this component to the specified component.
  `void`
  `setPinchBlocksDragAndDrop(boolean block)`
  If a component supports pinch as well as drag and drop the two may conflict (if one finger is placed a bit before the other, the drag timer will be initiated and may trigger drag even if the second finger has been placed before).
  `void`
  `setPreferredH(int preferredH)`
  Helper method to set the preferred height of the component.
  `void`
  `setPreferredSize(Dimension d)`
  Sets the Component Preferred Size, there is no guarantee the Component will be sized at its Preferred Size.
  `void`
  `setPreferredSizeStr(String value)`

  ###### Parameters

  `void`
  `setPreferredTabIndex(int index)`
  Sets the preferred tab index of the component.
  `void`
  `setPreferredW(int preferredW)`
  Helper method to set the preferred width of the component.
  `void`
  `setPressedStyle(Style style)`
  Sets the Component Style for the pressed state allowing us to manipulate the look of the component when it is pressed
  `String`
  `setPropertyValue(String name, Object value)`
  Sets a new value to the given property, returns an error message if failed and null if successful.
  `void`
  `setRippleEffect(boolean rippleEffect)`
  Indicates whether the component displays the material design ripple effect
  `void`
  `setRTL(boolean rtl)`
  Is the component a bidi RTL component
  `static void`
  `setSameHeight(Component... c)`
  Places all of these components in the same height group, to remove a component from the group invoke this method with that component only.
  `static void`
  `setSameSize(Component... c)`
  This is identical to invoking `#sameWidth` followed by `#sameHeight`
  `static void`
  `setSameWidth(Component... c)`
  Places all of these components in the same width group, to remove a component from the group invoke this method with that component only.
  `void`
  `setScrollAnimationSpeed(int animationSpeed)`
  Scroll animation speed in milliseconds allowing a developer to slow down or accelerate the smooth animation mode
  `void`
  `setScrollOpacityChangeSpeed(int scrollOpacityChangeSpeed)`
  Indicates the decrement units for the scroll opacity
  `void`
  `setScrollSize(Dimension d)`
  Set the size for the scroll area
  `void`
  `setScrollVisible(boolean isScrollVisible)`
  Set whether this component scroll is visible
  `protected void`
  `setScrollX(int scrollX)`
  Indicates the X position of the scrolling, this number is relative to the component position and so a position of 0 would indicate the x position of the component.
  `protected void`
  `setScrollY(int scrollY)`
  Indicates the Y position of the scrolling, this number is relative to the component position and so a position of 0 would indicate the y position of the component.
  `void`
  `setSelectCommandText(String selectText)`
  Allows determining the text for the select command used in the 3rd softbutton mode.
  `void`
  `setSelectedStyle(Style style)`
  Changes the Component selected Style by replacing the Component Style with the given Style
  `void`
  `setSize(Dimension d)`
  Sets the Component size, this method is exposed for the purpose of external layout managers and should not be invoked directly.
  `void`
  `setSmoothScrolling(boolean smoothScrolling)`
  Indicates that scrolling through the component should work as an animation
  `void`
  `setSnapToGrid(boolean snapToGrid)`
  Indicates whether scrolling this component should jump to a specific location in a grid
  `void`
  `setTabIndex(int index)`
  Sets the tab index of the component.
  `void`
  `setTactileTouch(boolean tactileTouch)`
  Indicates whether the component should "trigger" tactile touch when pressed by the user in a touch screen UI.
  `void`
  `setTensileDragEnabled(boolean tensileDragEnabled)`
  Indicates whether tensile drag (dragging beyond the boundry of the component and snapping back) is enabled for this component.
  `void`
  `setTensileLength(int tensileLength)`
  Recommended length for the tensile, -1 for default
  `void`
  `setTooltip(String tooltip)`

  ###### Parameters

  `final void`
  `setTraversable(boolean traversable)`
  Sets whether this component is traversable using the keyboard using tab, next, previous keys.
  `void`
  `setUIID(String id)`
  This method sets the Component the Unique identifier.
  `void`
  `setUIID(String portraitUiid, String landscapeUiid)`
  This method sets the Component the Unique identifier.
  `protected final void`
  `setUIIDFinal(String id)`
  This method is the implementation of setUIID and is defined as final to allow invocation from constructors.
  `void`
  `setUnselectedStyle(Style style)`
  Changes the Component Style by replacing the Component Style with the given Style
  `void`
  `setVisible(boolean visible)`
  Toggles visibility of the component
  `void`
  `setWidth(int width)`
  Sets the Component width, this method is exposed for the purpose of external layout managers and should not be invoked directly.
  `void`
  `setX(int x)`
  Sets the Component x location relative to the parent container, this method is exposed for the purpose of external layout managers and should not be invoked directly.
  `void`
  `setY(int y)`
  Sets the Component y location relative to the parent container, this method is exposed for the purpose of external layout managers and should not be invoked directly.
  `protected boolean`
  `shouldBlockSideSwipe()`
  A component that might need side swipe such as the slider could block it from being used for some other purpose when on top of said component.
  `protected boolean`
  `shouldBlockSideSwipeLeft()`
  A component that might need side swipe such as the tabs could block it from being used for some other purpose when on top of said component.
  `protected boolean`
  `shouldBlockSideSwipeRight()`
  A component that might need side swipe such as the tabs could block it from being used for some other purpose when on top of said component.
  `protected boolean`
  `shouldRenderComponentSelection()`
  A component can indicate whether it is interested in rendering it's selection explicitly, this defaults to true in non-touch UI's and false in touch UI's except for the case where a user clicks the screen.
  `protected void`
  `showNativeOverlay()`
  Creates the native overlay for this component.
  `void`
  `startEditingAsync()`
  If the component `#isEditable()`, then this will start the editing process.
  `void`
  `stopEditing(Runnable onFinish)`
  Stops the editing process.
  `Component`
  `stripMarginAndPadding()`
  Convenience method that strips margin and padding from the component, and returns itself for chaining.
  `void`
  `styleChanged(String propertyName, Style source)`
  Invoked to indicate a change in a propertyName of a Style
  `Image`
  `toImage()`
  Returns the component as an image.
  `String`
  `toString()`
  Overriden to return a useful value for debugging purposes
  `void`
  `unbindProperty(String prop, BindTarget target)`
  Removes a bind target from the given property name
  `protected void`
  `updateNativeOverlay()`
  Updates the native overlay for this component.
  `boolean`
  `visibleBoundsContains(int x, int y)`
  Returns true if the given absolute coordinate is contained inside the visible bounds of the component.

  ### Methods inherited from class Object

  `clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`
  Modifier and Type
  Method
  Description
  `protected Object`
  `clone()`
  `boolean`
  `equals(Object obj)`
  Indicates whether some other object is "equal to" this one.
  `final Class`
  `getClass()`
  Returns the runtime class of an object.
  `int`
  `hashCode()`
  Returns a hash code value for the object.
  `final void`
  `notify()`
  Wakes up a single thread that is waiting on this object's monitor.
  `final void`
  `notifyAll()`
  Wakes up all threads that are waiting on this object's monitor.
  `final void`
  `wait()`
  Causes current thread to wait until another thread invokes the method or the method for this object.
  `final void`
  `wait(long timeout)`
  Causes current thread to wait until either another thread invokes the method or the method for this object, or a specified amount of time has elapsed.
  `final void`
  `wait(long timeout, int nanos)`
  Causes current thread to wait until another thread invokes the method or the method for this object, or some other thread interrupts the current thread, or a certain amount of real time has elapsed.

- ## Field Details

  - ### FIXED_NONE

    public static final int FIXED_NONE
    Indicates the list isn't fixed and that selection is movable
    See Also:
      - Constant Field Values

  - ### FIXED_NONE_CYCLIC

    public static final int FIXED_NONE_CYCLIC
    Indicates that the list is not fixed in place but cycles its elements
    See Also:
      - Constant Field Values

  - ### FIXED_NONE_ONE_ELEMENT_MARGIN_FROM_EDGE

    public static final int FIXED_NONE_ONE_ELEMENT_MARGIN_FROM_EDGE
    Indicates the list selection will only reach the edge when there are no more elements in the list.
    See Also:
      - Constant Field Values

  - ### FIXED_LEAD

    public static final int FIXED_LEAD
    Indicates the list selection is fixed into place at the top of the list or at the left of the list
    See Also:
      - Constant Field Values

  - ### FIXED_TRAIL

    public static final int FIXED_TRAIL
    Indicates the list selection is fixed into place at the bottom of the list or at the right of the list
    See Also:
      - Constant Field Values

  - ### FIXED_CENTER

    public static final int FIXED_CENTER
    Indicates the list selection is fixed into place at the center of the list
    See Also:
      - Constant Field Values

  - ### VERTICAL

    public static final int VERTICAL
    Indicates the list orientation is VERTICAL
    See Also:
      - Constant Field Values

  - ### HORIZONTAL

    public static final int HORIZONTAL
    Indicates the list orientation is HORIZONTAL
    See Also:
      - Constant Field Values

- ## Constructor Details

  - ### List

    public List(Vector items)

    Creates a new instance of List

    ###### Parameters

    - `items`: set of items placed into the list model

  - ### List

    public List(T... items)

    Creates a new instance of List

    ###### Parameters

    - `items`: set of items placed into the list model

  - ### List

    public List()
    Creates a new instance of List with an empty default model

  - ### List

    public List(ListModel model)

    Creates a new instance of List with the given model

    ###### Parameters

    - `model`: the model instance

- ## Method Details

  - ### isDefaultIgnoreFocusComponentWhenUnfocused

    public static boolean isDefaultIgnoreFocusComponentWhenUnfocused()

    Indicates whether the list should not paint the focus component if the list itself has no focus.

    ###### Returns

    the defaultIgnoreFocusComponentWhenUnfocused

  - ### setDefaultIgnoreFocusComponentWhenUnfocused

    public static void setDefaultIgnoreFocusComponentWhenUnfocused(boolean aDefaultIgnoreFocusComponentWhenUnfocused)

    Indicates whether the list should not paint the focus component if the list itself has no focus.

    ###### Parameters

    - `aDefaultIgnoreFocusComponentWhenUnfocused`: the defaultIgnoreFocusComponentWhenUnfocused to set

  - ### isDefaultFireOnClick

    public static boolean isDefaultFireOnClick()

    Default value for the fire on click behavior

    ###### Returns

    the defaultFireOnClick

  - ### setDefaultFireOnClick

    public static void setDefaultFireOnClick(boolean aDefaultFireOnClick)

    Default value for the fire on click behavior

    ###### Parameters

    - `aDefaultFireOnClick`: the defaultFireOnClick to set

  - ### initLaf

    protected void initLaf(UIManager uim)
    This method initializes the Component defaults constants
    Overrides:
      `initLaf` in class `Component`

  - ### laidOut

    protected void laidOut()
    This is a callback method to inform the Component when it's been laidout on the parent Container
    Overrides:
      `laidOut` in class `Component`

  - ### modelChanged

    protected void modelChanged(int status, int index)

    Callback to allow subclasses to react to a change in the model

    ###### Parameters

    - `status`: the type data change; REMOVED, ADDED or CHANGED

    - `index`: item index in a list model

  - ### listSelectionChanged

    protected void listSelectionChanged(int oldSelected, int newSelected)

    Callback to allow subclasses to react to a selection change in the model

    ###### Parameters

    - `oldSelected`: the old selection value

    - `newSelected`: the new selection value

  - ### getSideGap

    public int getSideGap()

    Returns the gap to be left for the side scrollbar on the Y axis. This method is used by layout managers to determine the room they should leave for the scrollbar. (note: side scrollbar rather than left scrollbar is used for a future version that would support bidi).

    ###### Returns

    the gap to be left for the side scrollbar on the Y axis

    Overrides:
      `getSideGap` in class `Component`

  - ### isScrollableY

    public boolean isScrollableY()

    Indicates whether the component should/could scroll on the Y axis

    ###### Returns

    whether the component is scrollable on the X axis

    Overrides:
      `isScrollableY` in class `Component`

  - ### isScrollableX

    public boolean isScrollableX()

    Indicates whether the component should/could scroll on the X axis

    ###### Returns

    whether the component is scrollable on the X axis

    Overrides:
      `isScrollableX` in class `Component`

  - ### getMaxElementHeight

    public int getMaxElementHeight()

    Maximum number of elements shown in a list, this member is used to calculate the list preferred size. If the number of elements in the model is larger than this then this value is used in the calculations.

    ###### Returns

    the maximum number of elements

  - ### setMaxElementHeight

    public void setMaxElementHeight(int maxElementHeight)

    Maximum number of elements shown in a list, this member is used to calculate the list preferred size. If the number of elements in the model is larger than this then this value is used in the calculations.

    ###### Parameters

    - `maxElementHeight`: the maximum number of elements

  - ### getMinElementHeight

    public int getMinElementHeight()

    Minimum number of elements shown in a list, this member is used to calculate the list preferred size. If the number of elements in the model is smaller than this then this value is used in the calculations.

    ###### Returns

    the minimum number of elements

  - ### setMinElementHeight

    public void setMinElementHeight(int minElementHeight)

    Minimum number of elements shown in a list, this member is used to calculate the list preferred size. If the number of elements in the model is smaller than this then this value is used in the calculations.

    ###### Parameters

    - `minElementHeight`: the minimum number of elements

  - ### size

    public int size()

    Returns the number of elements in the list, shorthand for getModel().getSize()

    ###### Returns

    the number of elements in the list

  - ### getCurrentSelected

    public int getCurrentSelected()

    Returns the visual selection during a drag operation, otherwise equivalent to model.getSelectedIndex

    ###### Returns

    visual selection

  - ### getSelectedIndex

    public int getSelectedIndex()

    Returns the current selected offset in the list

    ###### Returns

    the current selected offset in the list

  - ### setSelectedIndex

    public void setSelectedIndex(int index)

    Sets the current selected offset in the list, by default this implementation will scroll the list to the selection if the selection is outside of the screen

    ###### Parameters

    - `index`: the current selected offset in the list

  - ### getVisibleBounds

    protected Rectangle getVisibleBounds()

    Returns the component bounds for scrolling which might differ from the getBounds for large components e.g. list.

    ###### Returns

    the component bounds

    ###### See also

    - #getX

    - #getY

    - #getVisibleBounds(com.codename1.ui.geom.Rectangle)

    Overrides:
      `getVisibleBounds` in class `Component`

  - ### getDragRegionStatus

    protected int getDragRegionStatus(int x, int y)

    Indicates if the section within the X/Y area is a "drag region" where we expect people to drag or press in which case we can instantly start dragging making perceived performance faster. This is invoked by the implementation code to optimize drag start behavior

    ###### Parameters

    - `x`: x location for the touch

    - `y`: y location for the touch

    ###### Returns

    one of the DRAG_REGION_* values

    Overrides:
      `getDragRegionStatus` in class `Component`

  - ### setSelectedIndex

    public void setSelectedIndex(int index, boolean scrollToSelection)

    Sets the current selected offset in the list

    ###### Parameters

    - `index`: the current selected offset in the list

    - `scrollToSelection`: @param scrollToSelection indicates whether scrolling to selection should occur if the selection is outside of view

  - ### getSelectedItem

    public T getSelectedItem()

    Returns the current selected item in the list or null for no selection

    ###### Returns

    the current selected item in the list

  - ### setSelectedItem

    public void setSelectedItem(T item)

    Sets the current selected item in the list

    ###### Parameters

    - `item`: the current selected item in the list

  - ### getModel

    public ListModel<T> getModel()

    Returns the model underlying the list

    ###### Returns

    the model underlying the list

  - ### setModel

    public void setModel(ListModel model)

    Replaces/sets the model underlying the list

    ###### Parameters

    - `model`: the new model underlying the list

  - ### setShouldCalcPreferredSize

    public void setShouldCalcPreferredSize(boolean shouldCalcPreferredSize)

    Indicates the values within the component have changed and preferred size should be recalculated

    ###### Parameters

    - `shouldCalcPreferredSize`: @param shouldCalcPreferredSize indicate whether this component need to recalculate his preferred size
    Overrides:
      `setShouldCalcPreferredSize` in class `Component`

  - ### isNumericKeyActions

    public boolean isNumericKeyActions()

    Indicate whether pressing the number keys should trigger an action

    ###### Returns

    true if pressing the number keys should trigger an action

  - ### setNumericKeyActions

    public void setNumericKeyActions(boolean numericKeyActions)

    Indicate whether pressing the number keys should trigger an action

    ###### Parameters

    - `numericKeyActions`: true to trigger an action on number keys

  - ### isCommandList

    public boolean isCommandList()

    Indicates that the list should be treated as a list of commands, if the user "clicks" a command from the list its action performed method is invoked.

    ###### Returns

    true if the list is treated as a command list

  - ### setCommandList

    public void setCommandList(boolean commandList)

    Indicates that the list should be treated as a list of commands, if the user "clicks" a command from the list its action performed method is invoked.

    ###### Parameters

    - `commandList`: true for the list to be treated as a command list

  - ### isIgnoreFocusComponentWhenUnfocused

    public boolean isIgnoreFocusComponentWhenUnfocused()

    Indicates whether the list should not paint the focus component if the list itself has no focus.

    ###### Returns

    the ignoreFocusComponentWhenUnfocused

  - ### setIgnoreFocusComponentWhenUnfocused

    public void setIgnoreFocusComponentWhenUnfocused(boolean ignoreFocusComponentWhenUnfocused)

    Indicates whether the list should not paint the focus component if the list itself has no focus.

    ###### Parameters

    - `ignoreFocusComponentWhenUnfocused`: true to ignore the focus component false otherwise

  - ### isMutableRendererBackgrounds

    public boolean isMutableRendererBackgrounds()

    Indicates that the background of a cell renderer might mutate between one entry and the next, it is recommended that this flag remains false for performance reasons.

    ###### Returns

    the value of the flag

  - ### setMutableRendererBackgrounds

    public void setMutableRendererBackgrounds(boolean mutableRendererBackgrounds)

    Indicates that the background of a cell renderer might mutate between one entry and the next, it is recommended that this flag remains false for performance reasons.

    ###### Parameters

    - `mutableRendererBackgrounds`: the new value for the flag

  - ### getListSizeCalculationSampleCount

    public int getListSizeCalculationSampleCount()

    Indicates the number of elements the list should check to determine the element sizes. This is ignored when a rendering prototype is present.

    ###### Returns

    the listSizeCalculationSampleCount

  - ### setListSizeCalculationSampleCount

    public void setListSizeCalculationSampleCount(int listSizeCalculationSampleCount)

    Indicates the number of elements the list should check to determine the element sizes. This is ignored when a rendering prototype is present.

    ###### Parameters

    - `listSizeCalculationSampleCount`: the listSizeCalculationSampleCount to set

  - ### isLongPointerPressActionEnabled

    public boolean isLongPointerPressActionEnabled()

    Enable/disable list action on long pointer press event

    ###### Returns

    the longPointerPressAction

  - ### setLongPointerPressActionEnabled

    public void setLongPointerPressActionEnabled(boolean longPointerPressAction)

    Enable/disable list action on long pointer press event

    ###### Parameters

    - `longPointerPressAction`: the longPointerPressAction to set

  - ### setListCellRenderer

    public void setListCellRenderer(ListCellRenderer renderer)

    Sets the renderer which is used to draw list elements

    ###### Parameters

    - `renderer`: cell renderer instance

    ###### Deprecated

  - ### getRenderer

    public final ListCellRenderer getRenderer()

    Returns the renderer which is used to draw list elements

    ###### Returns

    the renderer which is used to draw list elements

  - ### setRenderer

    public final void setRenderer(ListCellRenderer renderer)

    Sets the renderer which is used to draw list elements

    ###### Parameters

    - `renderer`: cell renderer instance

  - ### getOrientation

    public int getOrientation()

    Returns the list orientation

    ###### Returns

    the list orientation HORIZONTAL or VERTICAL

    ###### See also

    - #HORIZONTAL

    - #VERTICAL

  - ### setOrientation

    public void setOrientation(int orientation)

    Sets the list orientation HORIZONTAL or VERTICAL

    ###### Parameters

    - `orientation`: the list orientation HORIZONTAL or VERTICAL

    ###### See also

    - #HORIZONTAL

    - #VERTICAL

  - ### refreshTheme

    public void refreshTheme(boolean merge)

    Makes sure the component is up to date with the current theme, ONLY INVOKE THIS METHOD IF YOU CHANGED THE THEME!

    ###### Parameters

    - `merge`: indicates if the current styles should be merged with the new styles
    Overrides:
      `refreshTheme` in class `Component`

  - ### scrollRectToVisible

    public void scrollRectToVisible(Rectangle rect)

    Makes sure the selected index is visible if it is not in the current view rect the list will scroll so it fits within

    ###### Parameters

    - `rect`: the rectangle area to scroll to

  - ### setHandlesInput

    public void setHandlesInput(boolean b)

    Prevents key events from being grabbed for focus traversal. E.g. a list component might use the arrow keys for internal navigation so it will switch this flag to true in order to prevent the focus manager from moving to the next component.

    ###### Parameters

    - `handlesInput`: @param handlesInput indicates whether key events can be grabbed for focus traversal
    Overrides:
      `setHandlesInput` in class `Component`

  - ### fireClicked

    protected void fireClicked()
    When working in 3 softbutton mode "fire" key (center softbutton) is sent to this method in order to allow 3 button devices to work properly. When overriding this method you should also override isSelectableInteraction to indicate that a command is placed appropriately on top of the fire key for 3 soft button phones.
    Overrides:
      `fireClicked` in class `Component`

  - ### isSelectableInteraction

    protected boolean isSelectableInteraction()

    This method allows a component to indicate that it is interested in an "implicit" select command to appear in the "fire" button when 3 softbuttons are defined in a device.

    ###### Returns

    true if this is a selectable interaction

    Overrides:
      `isSelectableInteraction` in class `Component`

  - ### keyReleased

    public void keyReleased(int keyCode)

    If this Component is focused, the key released event will call this method

    ###### Parameters

    - `keyCode`: the key code value to indicate a physical key.
    Overrides:
      `keyReleased` in class `Component`

  - ### keyPressed

    public void keyPressed(int keyCode)

    If this Component is focused, the key pressed event will call this method

    ###### Parameters

    - `keyCode`: the key code value to indicate a physical key.
    Overrides:
      `keyPressed` in class `Component`

  - ### paint

    public void paint(Graphics g)

    This method paints the Component on the screen, it should be overriden by subclasses to perform custom drawing or invoke the UI API's to let the PLAF perform the rendering.

    ###### Parameters

    - `g`: the component graphics
    Specified by:
      `paint` in interface `Animation`
    Overrides:
      `paint` in class `Component`

  - ### shouldRenderSelection

    protected boolean shouldRenderSelection()

    Allows subclasses to override the selection rendering for the component, specifically the spinner in some themes

    ###### Returns

    true to render the selection, false otherwise.

  - ### addSelectionListener

    public void addSelectionListener(SelectionListener l)

    Invoked to indicate interest in future selection events

    ###### Parameters

    - `l`: the selection listener to be added

  - ### removeSelectionListener

    public void removeSelectionListener(SelectionListener l)

    Invoked to indicate no further interest in future selection events

    ###### Parameters

    - `l`: the selection listener to be removed

  - ### addActionListener

    public void addActionListener(ActionListener l)

    Allows binding a listener to user selection actions

    ###### Parameters

    - `l`: the action listener to be added
    Specified by:
      `addActionListener` in interface `ActionSource<T>`

  - ### getActionListeners

    public Vector getActionListeners()

    This method allows extracting the action listeners from the current list

    ###### Returns

    vector containing the action listeners on the list

    ###### Deprecated

    use getListeners instead

  - ### getListeners

    public Collection getListeners()

    This method allows extracting the action listeners from the current list

    ###### Returns

    Collection containing the action listeners on the list

  - ### removeActionListener

    public void removeActionListener(ActionListener l)

    Allows binding a listener to user selection actions

    ###### Parameters

    - `l`: the action listener to be removed
    Specified by:
      `removeActionListener` in interface `ActionSource<T>`

  - ### fireActionEvent

    protected void fireActionEvent()
    Fires an action event for the current event source.

  - ### fireActionEvent

    protected void fireActionEvent(ActionEvent a)

    Triggers the event to the listeners

    ###### Parameters

    - `a`: the event to fire

  - ### setInputOnFocus

    public void setInputOnFocus(boolean inputOnFocus)

    A list can start handling input implicitly upon gaining focus, this can make for a more intuitive UI when no other focus elements exist or when their use case is infrequent. However, it might be odd in some cases where the list "steals" focus.

    ###### Parameters

    - `inputOnFocus`: @param inputOnFocus true is a list can start handling input implicitly upon gaining focus

  - ### setPaintFocusBehindList

    public void setPaintFocusBehindList(boolean paintFocusBehindList)

    This method determines if the animated focus is drawn on top of the List or behind the List when moving.

    ###### Parameters

    - `paintFocusBehindList`

  - ### getItemGap

    public int getItemGap()

    Returns the gap between items

    ###### Returns

    the gap between items

  - ### setItemGap

    public void setItemGap(int itemGap)

    Set the gap between items

    ###### Parameters

    - `itemGap`: the gap between items

  - ### getRenderingPrototype

    public T getRenderingPrototype()

    See set rendering prototype

    ###### Returns

    the value of the rendering prototype

    ###### See also

    - #setRenderingPrototype(java.lang.Object)

  - ### setRenderingPrototype

    public void setRenderingPrototype(T renderingPrototype)

    The rendering prototype is optionally used in calculating the size of the List and is recommended for performance reasons. You should invoke it with an object representing a theoretical value in the list which will be used to calculate the size required for each element in the list.

    This allows list size calculations to work across look and feels and allows developers to predetermine size for list elements.

    e.g. For a list of Strings which you would like to always be 5 characters wide you can use a prototype "XXXXX" which would use the preferred size of the XXXXX String to determine the size of the list element. E.g. for a list of dates you can use new Date(30, 12, 00) etc..

    The example below was designed for `com.codename1.ui.list.MultiList` but should work for any list. Its goal is to render 2 lines of text with 20 characters and a 5mm square icon:

        Map proto = new HashMap<>();
        map.put("Line1", "WWWWWWWWWWWWWWWWWWWW");
        map.put("Line2", "WWWWWWWWWWWWWWWWWWWW");
        int mm5 = Display.getInstance().convertToPixels(5, true);
        map.put("icon", Image.create(mm5, mm5));
        myMultiList.setRenderingPrototype(map);

    ###### Parameters

    - `renderingPrototype`: @param renderingPrototype a value that can be passed to the renderer to indicate the preferred size of a list component.

  - ### longPointerPress

    public void longPointerPress(int x, int y)
    If this Component is focused this method is invoked when the user presses and holds the pointer on the Component
    Overrides:
      `longPointerPress` in class `Component`

  - ### pointerPressed

    public void pointerPressed(int x, int y)

    If this Component is focused, the pointer pressed event will call this method

    ###### Parameters

    - `x`: the pointer x coordinate

    - `y`: the pointer y coordinate

    Overrides:
      `pointerPressed` in class `Component`

  - ### pointerHover

    public void pointerHover(int[] x, int[] y)

    Invoked for devices where the pointer can hover without actually clicking the display. This is true for PC mouse pointer as well as some devices such as the BB storm.

    ###### Parameters

    - `x`: the pointer x coordinate

    - `y`: the pointer y coordinate

    Overrides:
      `pointerHover` in class `Component`

  - ### pointerDragged

    public void pointerDragged(int x, int y)

    If this Component is focused, the pointer dragged event will call this method

    ###### Parameters

    - `x`: the pointer x coordinate

    - `y`: the pointer y coordinate

    Overrides:
      `pointerDragged` in class `Component`

  - ### getSelectedRect

    public Rectangle getSelectedRect()

    Returns the component bounds with absolute screen coordinates, for components that include an internal selection behavior and are not containers (currently only List) this method allows returning the position of the selection itself which is useful for things such as the popup dialog and similar UI's that need to reference the position of the selection externally

    ###### Returns

    the bounds of the component with absolute screen coordinates

    Overrides:
      `getSelectedRect` in class `Component`

  - ### setFireOnClick

    public void setFireOnClick(boolean fireOnClick)

    This method determines if the List fires the action event when the pointer was clicked on one of the items, or only if the item was the selected item By default the value is true, this setting is only relevant for none fixed Lists

    ###### Parameters

    - `fireOnClick`

  - ### pointerHoverReleased

    public void pointerHoverReleased(int[] x, int[] y)

    Invoked for devices where the pointer can hover without actually clicking the display. This is true for PC mouse pointer as well as some devices such as the BB storm.

    ###### Parameters

    - `x`: the pointer x coordinate

    - `y`: the pointer y coordinate

    Overrides:
      `pointerHoverReleased` in class `Component`

  - ### pointerReleased

    public void pointerReleased(int x, int y)

    If this Component is focused, the pointer released event will call this method

    ###### Parameters

    - `x`: the pointer x coordinate

    - `y`: the pointer y coordinate

    Overrides:
      `pointerReleased` in class `Component`

  - ### calcPreferredSize

    protected Dimension calcPreferredSize()

    Calculates the preferred size based on component content. This method is invoked lazily by getPreferred size.

    ###### Returns

    the calculated preferred size based on component content

    Overrides:
      `calcPreferredSize` in class `Component`

  - ### addItem

    public void addItem(T item)

    Allows adding an element to a list if the underlying model supports this, notice that it is an optional operation and if the model does not support it (default list model does) then this operation may failed.

    ###### Parameters

    - `item`: the item to be added to a list model

  - ### getFixedSelection

    public int getFixedSelection()

    Indicates whether selection is fixable to place in which case all the elements in the list move and selection stays in place.

    ###### Returns

    one of: FIXED_NONE, FIXED_TRAIL, FIXED_LEAD, FIXED_CENTER, FIXED_NONE_CYCLIC

  - ### setFixedSelection

    public void setFixedSelection(int fixedSelection)

    Indicates whether selection is fixable to place in which case all the elements in the list move and selection stays in place.

    ###### Parameters

    - `fixedSelection`: @param fixedSelection one of: FIXED_NONE, FIXED_TRAIL, FIXED_LEAD, FIXED_CENTER, FIXED_NONE_CYCLIC

  - ### animate

    public boolean animate()

    Allows the animation to reduce "repaint" calls when it returns false. It is called once for every frame. Frames are defined by the `com.codename1.ui.Display` class.

    ###### Returns

    true if a repaint is desired or false if no repaint is necessary

    Specified by:
      `animate` in interface `Animation`
    Overrides:
      `animate` in class `Component`

  - ### isTactileTouch

    protected boolean isTactileTouch(int x, int y)

    Elaborate components might not provide tactile feedback for all their areas (e.g. Lists) this method defaults to returning the value of isTactileTouch

    ###### Parameters

    - `x`: the x position

    - `y`: the y position

    ###### Returns

    True if the device should vibrate

    Overrides:
      `isTactileTouch` in class `Component`

  - ### setScrollToSelected

    public void setScrollToSelected(boolean scrollToSelected)

    This flag indicates to the List if the List should scroll to the selected element when it's been initialized.

    ###### Parameters

    - `scrollToSelected`: @param scrollToSelected if true the List scrolls to the selected element when It's been initialized.

  - ### getGridPosY

    protected int getGridPosY()

    This method should be implemented correctly by subclasses to make snap to grid functionality work as expected. Returns the ideal grid Y position closest to the current Y position.

    ###### Returns

    a valid Y position in the grid

    Overrides:
      `getGridPosY` in class `Component`

  - ### getGridPosX

    protected int getGridPosX()

    This method should be implemented correctly by subclasses to make snap to grid functionality work as expected. Returns the ideal grid X position closest to the current X position.

    ###### Returns

    a valid Y position in the grid

    Overrides:
      `getGridPosX` in class `Component`

  - ### paramString

    protected String paramString()

    Returns a string representing the state of this component. This method is intended to be used only for debugging purposes, and the content and format of the returned string may vary between implementations. The returned string may be empty but may not be `null`.

    ###### Returns

    a string representation of this component's state

    Overrides:
      `paramString` in class `Component`

  - ### getHint

    public String getHint()

    Returns the hint text

    ###### Returns

    the hint text or null

  - ### setHint

    public void setHint(String hint)

    Sets the TextArea hint text, the hint text is displayed on the TextArea When there is no text in the TextArea

    ###### Parameters

    - `hint`: the hint text to display

  - ### getHintIcon

    public Image getHintIcon()

    Returns the hint icon

    ###### Returns

    the hint icon

  - ### setHintIcon

    public void setHintIcon(Image icon)

    Sets the TextArea hint icon, the hint is displayed on the TextArea When there is no text in the TextArea

    ###### Parameters

    - `icon`: the icon

  - ### setHint

    public void setHint(String hint, Image icon)

    Sets the TextArea hint text and Icon, the hint text and icon are displayed on the TextArea when there is no text in the TextArea

    ###### Parameters

    - `hint`: the hint text to display

    - `icon`: the hint icon to display