Class Container
- All Implemented Interfaces:
Animation, Editable, StyleListener, Iterable<Component>
- Direct Known Subclasses:
Accordion, Ads, AudioRecorderComponent, BaseSpinner, BrowserComponent, ButtonList, Calendar, ClearableTextField, ComponentGroup, ContainerList, EmbeddedContainer, FloatingHint, Form, HTMLComponent, InfiniteContainer, InputComponent, InteractionDialog, InterFormContainer, MapComponent, MediaPlayer, MenuBar, MultiButton, OnOffSwitch, Scene, Sheet, SignatureComponent, SpanButton, SpanLabel, SpanMultiButton, SplitPane, SwipeableContainer, Table, Tabs, TestRunnerComponent, Toolbar, Tree, WebBrowser
A composite pattern with Component, allows nesting and arranging multiple
components using a pluggable layout manager architecture. Containers can be nested
one within the other to form elaborate UI's. By default Containers use com.codename1.ui.layouts.FlowLayout
which isn't ideal for most use cases.
Components within the Container MUST be arranged using a layout manager!
This allows the UI to adapt to different resolutions, DPI, orientation changes etc. seamlessly. Invoking any bounds setting method will produce unpredictable results. To learn about layout managers check out the relevant section in the developer guide.
A container doesn't implicitly reflow its elements and in that regard follows the direction of AWT/Swing. As
a result the layout can be animated to create a flowing effect for UI changes. This also provides improved
performance as a bonus. See this sample of Container animation:
Form hi = new Form("Layout Animations", new BoxLayout(BoxLayout.Y_AXIS));
Button fall = new Button("Fall");
fall.addActionListener((e) -> {
for(int iter = 0 ; iter < 10 ; iter++) {
Label b = new Label ("Label " + iter);
b.setWidth(fall.getWidth());
b.setHeight(fall.getHeight());
b.setY(-fall.getHeight());
hi.add(b);
}
hi.getContentPane().animateLayout(20000);
});
hi.add(fall);
Many components within Codename One (e.g. com.codename1.ui.tree.Tree,
com.codename1.ui.table.Table,
com.codename1.components.MultiButton etc.) derive from Container instead of Component. This allows
such components to provide very rich functionality by building on top of the existing functionality.
Container also provides the lead component functionality that allows treating an entire Container hierarchy
as a single component. This is discussed in depth within the developer guide.
-
Field Summary
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 -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionfinal ContainerSimpler version of addComponent that allows chaining the calls for shorter syntaxSimpler version of addComponent that allows chaining the calls for shorter syntaxSimpler version of addComponent that allows chaining the calls for shorter syntaxSimpler version of addComponent that allows chaining the calls for shorter syntaxSimpler version of addComponent that allows chaining the calls for shorter syntaxSimpler version of addComponent that allows chaining the calls for shorter syntaxIdentical to add(x).add(y) only with a shorter syntaxvoidaddComponent(int index, Component cmp) This method adds the Component at a specific index location in the Container Components array.voidaddComponent(int index, Object constraints, Component cmp) Adds a Component to the ContainervoidaddComponent(Component cmp) Adds a Component to the ContainervoidaddComponent(Object constraints, Component cmp) Adds a Component to the ContainervoidanimateHierarchy(int duration) Animates a pending hierarchy of components into place, this effectively replaces revalidate with a more visual form of animationvoidanimateHierarchyAndWait(int duration) Animates a pending hierarchy of components into place, this effectively replaces revalidate with a more visual form of animation.voidanimateHierarchyFade(int duration, int startingOpacity) Animates a pending hierarchy of components into place, this effectively replaces revalidate with a more visual form of animationvoidanimateHierarchyFadeAndWait(int duration, int startingOpacity) Animates a pending hierarchy of components into place, this effectively replaces revalidate with a more visual form of animation.voidanimateLayout(int duration) Animates a pending layout into place, this effectively replaces revalidate with a more visual form of animationvoidanimateLayoutAndWait(int duration) Animates a pending layout into place, this effectively replaces revalidate with a more visual form of animation.voidanimateLayoutFade(int duration, int startingOpacity) Animates a pending layout into place, this effectively replaces revalidate with a more visual form of animationvoidanimateLayoutFadeAndWait(int duration, int startingOpacity) Animates a pending layout into place, this effectively replaces revalidate with a more visual form of animation.voidanimateUnlayout(int duration, int opacity, Runnable callback) This method is the exact reverse of animateLayout, when completed it leaves the container in an invalid state.voidanimateUnlayoutAndWait(int duration, int opacity) This method is the exact reverse of animateLayoutAndWait, when completed it leaves the container in an invalid state.voidapplyRTL(boolean rtl) Invokes apply/setRTL recursively on all the children components of this containerprotected DimensionCalculates the preferred size based on component content.protected voidremove this component and it's children from the painting queuevoidClears all client properties from this Componentprotected booleanIndicates that children's widths should be calculated as if this component weren't scrollable-X, even when the component is scrollable Y.protected booleanIndicates that children's widths should be calculated as if this component weren't scrollable-X, even when the component is scrollable X.booleanReturns true if the given component is within the hierarchy of this containercreateAnimateHierarchy(int duration) Animates a pending hierarchy of components into place, this effectively replaces revalidate with a more visual form of animation.createAnimateHierarchyFade(int duration, int startingOpacity) Animates a pending hierarchy of components into place, this effectively replaces revalidate with a more visual form of animation.createAnimateLayout(int duration) Animates a pending layout into place, this effectively replaces revalidate with a more visual form of animationcreateAnimateLayoutFade(int duration, int startingOpacity) Animates a pending layout into place, this effectively replaces revalidate with a more visual form of animationcreateAnimateLayoutFadeAndWait(int duration, int startingOpacity) Animates a pending layout into place, this effectively replaces revalidate with a more visual form of animation.protected MotioncreateAnimateMotion(int start, int destination, int duration) Creates a motion object for animation, allows subclasses to replace the motion type used in animations (currently defaults to ease-in).createAnimateUnlayout(int duration, int opacity, Runnable callback) This method is the exact reverse of createAnimateLayout, when animation is completed it leaves the container in an invalid state.createReplaceTransition(Component current, Component next, Transition t) This method creates an animation component that replaces the current Component with the next Component.protected voidInvoked 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 scrollingvoidPerforms 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 effectstatic ContainerShort-hand for enclosing multiple components in a container typically a box layoutstatic ContainerShort-hand for enclosing a component within a ContainerfindDropTargetAt(int x, int y) Recursively searches the container hierarchy for a drop targetFinds the first focusable Component on this Containerprotected voidWhen working in 3 softbutton mode "fire" key (center softbutton) is sent to this method in order to allow 3 button devices to work properly.voidFlushes ongoing replace operations to prevent two concurrent replace operations from colliding.voidA more powerful form of revalidate that recursively lays out the full hierarchyintReturns the gap to be left for the bottom scrollbar on the X axis.getChildrenAsList(boolean includeQueued) Gets the child components of this Container as a List.getClosestComponentTo(int x, int y) Very useful for touch events or drop events that need approximation more than accuracygetComponentAt(int index) Returns the Component at a given indexgetComponentAt(int x, int y) Returns a Component at coordinate (x, y).intReturns the number of componentsintReturns the Component index in the Containerprotected intThis method should be implemented correctly by subclasses to make snap to grid functionality work as expected.protected intThis method should be implemented correctly by subclasses to make snap to grid functionality work as expected.Returns the layout manager responsible for arranging this container.intReturns the height for layout manager purposes, this takes scrolling into consideration unlike the getHeight method.intReturns the width for layout manager purposes, this takes scrolling into consideration unlike the getWidth method.Returns the lead component for this hierarchy if such a component is definedReturns the lead container thats handling the leading, this is useful for a container hierarchy where the parent container might not be the leadergetResponderAt(int x, int y) Returns the top-most component that responds to pointer events at absolute coordinate (x, y).Gets the Safe area "root" container for this container.intGets the Container scroll incrementintReturns the gap to be left for the side scrollbar on the Y axis.This method should be used by the Component to retrieve the correct UIManager to work withprotected voidThis method initializes the Component defaults constantsvoidSame as setShouldCalcPreferredSize(true) but made accessible for layout managersbooleanIndicates whether component is enabled or disabled thus allowing us to prevent a component from receiving input events and indicate so visuallybooleanChecks if this container is a "safe area".booleanChecks if this container is a safe area root.booleanIndicates whether the component should/could scroll on the X axisbooleanIndicates whether the component should/could scroll on the Y axisprotected booleanThis 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.booleanChecks if this container acts as a Material Design surface.iterator()Part of the Iterable interface allowing us to do a for-each loop on Containeriterator(boolean includeQueued) Obtains an iterator that iterates over the children of this container.voidkeyPressed(int k) If this Component is focused, the key pressed event will call this methodvoidkeyReleased(int k) If this Component is focused, the key released event will call this methodvoidPerforms the layout of the container if a layout is necessaryvoidMorph is similar to the replace functionality where a component might be replaced with a component that isn't within the container.voidmorphAndWait(Component source, Component destination, int duration) Morph is similar to the replace functionality where a component might be replaced with a component that isn't within the container.voidThis 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.voidprotected voidThis method can be overriden by a component to draw on top of itself or its children after the component or the children finished drawing in a similar way to the glass pane but more refined per componentprotected StringReturns a string representing the state of this component.voidpointerPressed(int x, int y) If this Component is focused, the pointer pressed event will call this methodvoidrefreshTheme(boolean merge) Makes sure the component is up to date with the current theme, ONLY INVOKE THIS METHOD IF YOU CHANGED THE THEME!voidremove all Components from container, notice that removed component might still have a pending repaint in the queue that won't be removed.voidremoveComponent(Component cmp) removes a Component from the Container, notice that removed component might still have a pending repaint in the queue that won't be removed.voidreplace(Component current, Component next, Transition t) This method replaces the current Component with the next Component.voidreplace(Component current, Component next, Transition t, Runnable onFinish, int growSpeed) This method replaces the current Component with the next ComponentvoidreplaceAndWait(Component current, Component next, Transition t) This method replaces the current Component with the next Component.voidreplaceAndWait(Component current, Component next, Transition t, boolean dropEvents) This method replaces the current Component with the next Component.voidreplaceAndWait(Component current, Component next, Transition t, int layoutAnimationSpeed) This method replaces the current Component with the next Component.voidRe-layout the container, this is useful when we modify the container hierarchy and need to redo the layoutvoidRevalidates the container before the next paint cycle.voidRevalidates the container in a way that doesn't conflict with running animations.voidMakes sure the component is visible in the scroll if this container is scrollablevoidsetCellRenderer(boolean cellRenderer) Used as an optimization to mark that this component is currently being used as a cell renderervoidsetEnabled(boolean enabled) This method will recursively set all the Container chidrens to be enabled/disabled.voidSets the layout manager responsible for arranging this containerfinal voidsetLeadComponent(Component lead) Sets the lead component for this container, a lead component takes over the entire component hierarchy and receives all the events for the container hierarchy.voidsetSafeArea(boolean safeArea) Marks this container as a "safe area", meaning that it will automatically supply sufficient padding as necessary for its children to be laid out inside the safe area of the screen.voidsetSafeAreaRoot(boolean root) Set whether this container is a safe area root.voidsetScrollable(boolean scrollable) The equivalent of calling both setScrollableY and setScrollableXvoidsetScrollableX(boolean scrollableX) Sets whether the component should/could scroll on the X axisvoidsetScrollableY(boolean scrollableY) Sets whether the component should/could scroll on the Y axisvoidsetScrollIncrement(int scrollIncrement) Determines the scroll increment size of this Container.voidsetShouldCalcPreferredSize(boolean shouldCalcPreferredSize) Indicates the values within the component have changed and preferred size should be recalculatedprotected voidsetShouldLayout(boolean layout) Flags this container to preform layoutvoidsetUIManager(UIManager uiManager) Allows replacing the UIManager in a component hierarchy to update the look and feel only to a specific hierarchyintupdateTabIndices(int offset) Updates the tab indices in this container recursively.Methods inherited from class Component
addDragFinishedListener, addDragOverListener, addDropListener, addFocusListener, addLongPressListener, addPointerDraggedListener, addPointerPressedListener, addPointerReleasedListener, addPullToRefresh, addScrollListener, addStateChangeListener, animate, announceForAccessibility, bindProperty, blocksSideSwipe, calcScrollSize, contains, containsOrOwns, createStyleAnimation, deinitialize, deinitializeCustomStyle, dragEnter, dragExit, dragFinished, draggingOver, drawDraggedImage, focusGained, focusLost, getAbsoluteX, getAbsoluteY, getAccessibilityText, getAllStyles, getAnimationManager, getBaseline, getBaselineResizeBehavior, getBindablePropertyNames, getBindablePropertyTypes, getBorder, getBoundPropertyValue, getBounds, getBounds, getClientProperty, getCloudBoundProperty, getCloudDestinationProperty, getComponentForm, getComponentState, getCursor, getDefaultDragTransparency, getDirtyRegion, getDisabledStyle, getDraggedx, getDraggedy, getDragImage, getDragRegionStatus, 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, getSelectedRect, getSelectedStyle, getStyle, getTabIndex, getTensileLength, getTextSelectionSupport, getTooltip, getUIID, getUnselectedStyle, getVisibleBounds, 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, isFlatten, isFocusable, isGrabsPointerEvents, isHidden, isHidden, isHideInLandscape, isHideInPortrait, isIgnorePointerEvents, isInClippingRegion, isInitialized, isOpaque, isOwnedBy, isPinchBlocksDragAndDrop, isRippleEffect, isRTL, isScrollable, isScrollVisible, isSetCursorSupported, isSmoothScrolling, isSnapToGrid, isStickyDrag, isTactileTouch, isTactileTouch, isTensileDragEnabled, isTraversable, isVisible, keyRepeated, laidOut, longKeyPress, longPointerPress, onScrollX, onScrollY, onSetFocusable, paintBackground, paintBackgrounds, paintBorder, paintBorderBackground, paintComponent, paintComponent, paintIntersectingComponentsAbove, paintLock, paintLockRelease, paintRippleOverlay, paintScrollbars, paintScrollbarX, paintScrollbarY, paintShadows, parsePreferredSize, pinch, pinch, pinchReleased, pointerDragged, pointerDragged, pointerHover, pointerHoverPressed, pointerHoverReleased, pointerPressed, pointerReleased, 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, setCloudBoundProperty, setCloudDestinationProperty, setComponentState, setCursor, setDefaultDragTransparency, setDirtyRegion, setDisabledStyle, setDraggable, setDragTransparency, setDropTarget, setEditingDelegate, setFlatten, setFocus, setFocusable, setGrabsPointerEvents, setHandlesInput, 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, visibleBoundsContainsMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface Iterable
forEach, spliterator
-
Constructor Details
-
Container
-
Container
Constructs a new Container with a new layout manager.
Parameters
layout: the specified layout manager
-
Container
public Container()Constructs a new Container, with aFlowLayout.
-
-
Method Details
-
encloseIn
-
encloseIn
-
initLaf
-
getUIManager
This method should be used by the Component to retrieve the correct UIManager to work with
Returns
a UIManager instance
- Overrides:
getUIManagerin classComponent
-
setUIManager
Allows replacing the UIManager in a component hierarchy to update the look and feel only to a specific hierarchy
Parameters
uiManager: UIManager instance
-
isSurface
public boolean isSurface()Checks if this container acts as a Material Design surface. "Surface" containers render drop-shadows for their elevated descendents.
Returns
True if this container is a surface.
Since
8.0
-
add
-
addAll
-
add
-
add
-
add
-
add
Simpler version of addComponent that allows chaining the calls for shorter syntax
Parameters
-
constraint: the layout constraint if applicable -
label: a component that will be wrapped as a label, this is equivalent to calling add(new Label(l))
Returns
this for call chaining
-
-
add
Simpler version of addComponent that allows chaining the calls for shorter syntax
Parameters
-
constraint: the layout constraint if applicable -
img: an image that will be wrapped as a label, this is equivalent to calling add(new Label(l))
Returns
this for call chaining
-
-
getLeadComponent
Returns the lead component for this hierarchy if such a component is defined
Returns
the lead component
-
setLeadComponent
Sets the lead component for this container, a lead component takes over the entire component hierarchy and receives all the events for the container hierarchy.
Parameters
lead: component that takes over the hierarchy
-
getLeadParent
Returns the lead container thats handling the leading, this is useful for a container hierarchy where the parent container might not be the leader
Returns
the lead component
-
keyPressed
public void keyPressed(int k) 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:
keyPressedin classComponent
-
keyReleased
public void keyReleased(int k) 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:
keyReleasedin classComponent
-
getLayout
Returns the layout manager responsible for arranging this container.
Returns
the container layout manager
-
setLayout
Sets the layout manager responsible for arranging this container
Parameters
layout: the specified layout manager
-
invalidate
public void invalidate()Same as setShouldCalcPreferredSize(true) but made accessible for layout managers -
setShouldLayout
protected void setShouldLayout(boolean layout) Flags this container to preform layout
Parameters
layout
-
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:
setShouldCalcPreferredSizein classComponent
-
getLayoutWidth
public int getLayoutWidth()Returns the width for layout manager purposes, this takes scrolling into consideration unlike the getWidth method.
Returns
the layout width
-
getLayoutHeight
public int getLayoutHeight()Returns the height for layout manager purposes, this takes scrolling into consideration unlike the getHeight method.
Returns
the layout height
-
applyRTL
public void applyRTL(boolean rtl) Invokes apply/setRTL recursively on all the children components of this container
Parameters
rtl: right to left bidi indication
See also
- Component#setRTL(boolean)
-
constrainWidthWhenScrollable
protected boolean constrainWidthWhenScrollable()Indicates that children's widths should be calculated as if this component weren't scrollable-X, even when the component is scrollable X. Normally, when a component is figuring out its layout width, it will walk up the UI hierarchy to find the first scrollable container. If there is a scrollable container, then the component will try to grow as big as it wants. If there are no scrollable containers found, it will constrain itself to the space available. In some cases, we may want the children of a component to lay themselves out conservatively though because it wants to use its scrollability for other features.
Returns
- Returns:
True if children should calculate their layout widgets as if the component weren't scrollable.
Since
7.0
-
constrainHeightWhenScrollable
protected boolean constrainHeightWhenScrollable()Indicates that children's widths should be calculated as if this component weren't scrollable-X, even when the component is scrollable Y. Normally, when a component is figuring out its layout width, it will walk up the UI hierarchy to find the first scrollable container. If there is a scrollable container, then the component will try to grow as big as it wants. If there are no scrollable containers found, it will constrain itself to the space available. In some cases, we may want the children of a component to lay themselves out conservatively though because it wants to use its scrollability for other features.
Returns
- Returns:
True if children should calculate their layout widgets as if the component weren't scrollable.
Since
7.0
-
addComponent
Adds a Component to the Container
Parameters
cmp: the component to be added
-
addComponent
Adds a Component to the Container
Parameters
-
constraints: @param constraints this method is useful when the Layout requires a constraint such as the BorderLayout. In this case you need to specify an additional data when you add a Component, such as "CENTER", "NORTH"... -
cmp: component to add
-
-
addComponent
Adds a Component to the Container
Parameters
-
index: location to insert the Component -
constraints: @param constraints this method is useful when the Layout requires a constraint such as the BorderLayout. In this case you need to specify an additional data when you add a Component, such as "CENTER", "NORTH"... -
cmp: component to add
-
-
addComponent
This method adds the Component at a specific index location in the Container Components array.
Parameters
-
index: location to insert the Component -
cmp: the Component to add
Throws
-
ArrayIndexOutOfBoundsException: if index is out of bounds -
IllegalArgumentException: @throws IllegalArgumentException if Component is already contained or the cmp is a Form Component
-
-
replaceAndWait
This method replaces the current Component with the next Component. Current Component must be contained in this Container. This method returns when transition has finished.
Parameters
-
current: a Component to remove from the Container -
next: a Component that replaces the current Component -
t: @param t a Transition between the add and removal of the Components a Transition can be null
-
-
replaceAndWait
public void replaceAndWait(Component current, Component next, Transition t, int layoutAnimationSpeed) This method replaces the current Component with the next Component. Current Component must be contained in this Container. This method returns when transition has finished.
Parameters
-
current: a Component to remove from the Container -
next: a Component that replaces the current Component -
t: @param t a Transition between the add and removal of the Components a Transition can be null -
layoutAnimationSpeed: the speed of the layout animation after replace is completed
-
-
replace
public void replace(Component current, Component next, Transition t, Runnable onFinish, int growSpeed) This method replaces the current Component with the next Component
Parameters
-
current: a Component to remove from the Container -
next: a Component that replaces the current Component -
t: @param t a Transition between the add and removal of the Components a Transition can be null -
onFinish: invoked when the replace operation is completed, may be null -
growSpeed: @param growSpeed after replace is completed the component can gradually grow/shrink to fill up available room, set this to 0 for immediate growth or any larger number for gradual animation. -1 indicates a special case where no validation occurs
-
-
replaceAndWait
This method replaces the current Component with the next Component. Current Component must be contained in this Container. This method returns when transition has finished.
Parameters
-
current: a Component to remove from the Container -
next: a Component that replaces the current Component -
t: @param t a Transition between the add and removal of the Components a Transition can be null -
dropEvents: @param dropEvents indicates if the display should drop all events while this Component replacing is happening
-
-
replace
This method replaces the current Component with the next Component. Current Component must be contained in this Container. This method return immediately.
Parameters
-
current: a Component to remove from the Container -
next: a Component that replaces the current Component -
t: @param t a Transition between the add and removal of the Components a Transition can be null
-
-
createReplaceTransition
This method creates an animation component that replaces the current Component with the next Component. Current Component must be contained in this Container. This method return immediately.
Parameters
-
current: a Component to remove from the Container -
next: a Component that replaces the current Component -
t: @param t a Transition between the add and removal of the Components a Transition can be null
Returns
animation component that can be queued
-
-
isEnabled
-
setEnabled
public void setEnabled(boolean enabled) This method will recursively set all the Container chidrens to be enabled/disabled. If the Container is disabled and a child Component changed it's state to be enabled, the child Component will be treated as an enabled Component.
Parameters
enabled
- Overrides:
setEnabledin classComponent
-
removeComponent
removes a Component from the Container, notice that removed component might still have a pending repaint in the queue that won't be removed. Calling form.repaint() will workaround such an issue.
Parameters
cmp: the removed component
-
cancelRepaints
protected void cancelRepaints()remove this component and it's children from the painting queue- Overrides:
cancelRepaintsin classComponent
-
flushReplace
public void flushReplace()Flushes ongoing replace operations to prevent two concurrent replace operations from colliding. If there is no ongoing replace nothing will occur
Deprecated
this method is no longer used in the new animation framework
-
removeAll
public void removeAll()remove all Components from container, notice that removed component might still have a pending repaint in the queue that won't be removed. Calling form.repaint() will workaround such an issue. Notice that this method doesn't recurse and only removes from the current container. -
revalidateWithAnimationSafety
public void revalidateWithAnimationSafety()Revalidates the container in a way that doesn't conflict with running animations. If you simply call
#revalidate()on a container while an animation is in progress, it will produce paint artifacts as it will insert frames in the animation with the container at its final position. Using this method, it will wait until running animations are complete before it revalidates.Since
6.0
-
revalidate
public void revalidate()Re-layout the container, this is useful when we modify the container hierarchy and need to redo the layout -
revalidateLater
public void revalidateLater()Revalidates the container before the next paint cycle. Prefer this method to#revalidate()and#revalidateWithAnimationSafety()if you don't need the revalidate (layout and repaint) to happen immediately, but you do want it to happen before the next paint. This is can be far more efficient as it will squash the revalidation calls into the minimal set of containers that require revalidation, so that the system doesn't end up revalidating the same container multiple times between paints. -
forceRevalidate
public void forceRevalidate()A more powerful form of revalidate that recursively lays out the full hierarchy -
clearClientProperties
public void clearClientProperties()Clears all client properties from this Component- Overrides:
clearClientPropertiesin classComponent
-
paint
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
-
paintGlass
This method can be overriden by a component to draw on top of itself or its children after the component or the children finished drawing in a similar way to the glass pane but more refined per component
Parameters
g: the graphics context
-
layoutContainer
public void layoutContainer()Performs the layout of the container if a layout is necessary -
isSafeArea
public boolean isSafeArea()Checks if this container is a "safe area". A "safe area" is a container whose contents will always be displayed inside the device's "safe display area".
This feature was added primarily for the iPhone X which covers some parts of the screen and would cover or interfere with any content drawn in those regions. In particular, the notch, the rounded corners, and the task bar cover portions of the screen.
A container that is a safe area will automatically add appropriate padding on layout so that its children will be rendered completely in the safe area of the screen. This only applies if the container has no scrollable parents. If a "safe" container has scrollable parents, then it is assumed that the user can just scroll it into a safe area.
Returns
True if this container is a safe area.
Since
7.0
See also
-
#setSafeArea(boolean)
-
Form#getSafeArea()
-
-
setSafeArea
public void setSafeArea(boolean safeArea) Marks this container as a "safe area", meaning that it will automatically supply sufficient padding as necessary for its children to be laid out inside the safe area of the screen.
This was primarily added for the iPhone X which covers portions of the screen and may interfere with components that are rendered there.
The "safe" area is calculated against a "safe area root"'s bounds, which is the parent form by default. In some cases it may be helpful to make the root a sub-container, such as if you need to lay a component out off-screen. See
#setSafeAreaRoot(boolean)for more details.Parameters
safeArea: True to make this container a safe area.
Since
7.0
See also
-
Form#getSafeArea()
-
#isSafeArea()
-
#setSafeAreaRoot(boolean)
-
isSafeAreaRoot
public boolean isSafeAreaRoot()Checks if this container is a safe area root. A safe area root is a container against whose bounds, safe area margins are calculated for child components.
Forms are safe area roots by default.
Since
7.0
See also
- #setSafeAreaRoot(boolean)
-
getSafeAreaRoot
Gets the Safe area "root" container for this container. This method will walk up the component hierarchy until is finds a Container with
#isSafeAreaRoot()true.Forms are safe area roots by default, but it is possible to mark other containers as safe area roots.
A safe area root is a container from which safe area margins are applied when calculating the safe areas of child components. Setting a root can facilitate the layout of a container's children before it appears on the screen.
Since
7.0
-
setSafeAreaRoot
public void setSafeAreaRoot(boolean root) Set whether this container is a safe area root. A safe area root is a container against whose bounds, safe area margins are calculated for child components.
Safe Area root vs Safe Area
A Safe Area root is not actually a safe area. It will lay out its children normally, without any adjustments to padding to accommodate the display safe area. They are rather used by safe area child containers to calculate safe area margins, according to if the safe area root container spanned the entire screen
In most cases you don't need to explicitly set a safe area root, since Forms are marked as roots by default. However, there are edge cases where components may be initially laid out off-screen (in which safe areas are not applied), but are transitioned in. Once on the screen, the safe margins would be applied which may cause an abrupt re-layout at the moment that the safe margins are applied. This edge case occurs in, for example, a side menu bar which is rendered off-screen. By making the side menu bar container a "root" itself, the safe areas will be applied to the layout, even when the menu is off-screen. Then there is no "jerk" when it transitions in.
Parameters
root: True to make this a root. False to make it "not" a root.
Since
7.0
See also
- #isSafeAreaRoot()
-
getComponentCount
public int getComponentCount()Returns the number of components
Returns
the Component count
-
getComponentAt
Returns the Component at a given index
Parameters
index: of the Component you wish to get
Returns
a Component
Throws
ArrayIndexOutOfBoundsException: if an invalid index was given.
-
getComponentIndex
Returns the Component index in the Container
Parameters
cmp: the component to search for
Returns
the Component index in the Container or -1 if not found
-
contains
Returns true if the given component is within the hierarchy of this container
Parameters
cmp: a Component to check
Returns
true if this Component contains in this Container
-
scrollComponentToVisible
Makes sure the component is visible in the scroll if this container is scrollable
Parameters
c: the component that will be scrolling for visibility
-
getClosestComponentTo
Very useful for touch events or drop events that need approximation more than accuracy
Parameters
-
x: location in container relative coordinates -
y: location in container relative coordinates
Returns
the closest component in the container or null if no component is in the container
-
-
getResponderAt
Returns the top-most component that responds to pointer events at absolute coordinate (x, y). This may return null if there are no components at this coordinate that respond to pointer events.
Note: This method is stricter than
int)about which component is returned. Whereasint)will return this when there are no matches, as long as it contains (x, y),int)will return null in this case.int)may also return components that are not visible or are not enabled. In generaly, if you are trying to retrieve a component that responds to pointer events, you should use this method overint)unless you have a good reason and really know what you are doing.Parameters
-
x: Absolute x-coordinate. -
y: Absolute y-coordinate.
Returns
Top-most component that responds to pointer events at given coordinate. May be null.
See also
- Component#respondsToPointerEvents()
-
-
getComponentAt
Returns a Component at coordinate (x, y).
WARNING: This method may return components that are disabled, or invisible, or that do not respond to pointer events. If you are looking for the top-most component that responds to pointer events, you should use
int)as it is guaranteed to return a component withComponent#respondsToPointerEvents()true; or null if none is found at the coordinate.Parameters
-
x: absolute screen location -
y: absolute screen location
Returns
a Component if found, null otherwise
See also
-
Component#contains
-
#getResponderAt(int, int)
-
-
findDropTargetAt
Recursively searches the container hierarchy for a drop target
Parameters
-
x: position in which we are searching for a drop target -
y: position in which we are searching for a drop target
Returns
a drop target or null if no drop target could be found at the x/y position
-
-
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:
pointerPressedin classComponent
-
-
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:
calcPreferredSizein classComponent
-
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:
paramStringin classComponent
-
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:
refreshThemein classComponent
-
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:
isScrollableXin classComponent
-
setScrollableX
public void setScrollableX(boolean scrollableX) Sets whether the component should/could scroll on the X axis
Parameters
scrollableX: whether the component should/could scroll on the X axis
-
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:
isScrollableYin classComponent
-
setScrollableY
public void setScrollableY(boolean scrollableY) Sets whether the component should/could scroll on the Y axis
Parameters
scrollableY: whether the component should/could scroll on the Y axis
-
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:
getSideGapin classComponent
-
getBottomGap
public int getBottomGap()Returns the gap to be left for the bottom scrollbar on the X axis. This method is used by layout managers to determine the room they should leave for the scrollbar
Returns
the gap to be left for the bottom scrollbar on the X axis
- Overrides:
getBottomGapin classComponent
-
setScrollable
public void setScrollable(boolean scrollable) The equivalent of calling both setScrollableY and setScrollableX
Parameters
scrollable: @param scrollable whether the component should/could scroll on the X and Y axis
Deprecated
use setScrollableX and setScrollableY instead. This method is deprecated since it breeds confusion and is often misunderstood.
-
setCellRenderer
public void setCellRenderer(boolean cellRenderer) Used as an optimization to mark that this component is currently being used as a cell renderer
Parameters
cellRenderer: @param cellRenderer indicate whether this component is currently being used as a cell renderer
- Overrides:
setCellRendererin classComponent
-
getScrollIncrement
public int getScrollIncrement()Gets the Container scroll increment
Returns
the scroll increment in pixels.
-
setScrollIncrement
public void setScrollIncrement(int scrollIncrement) Determines the scroll increment size of this Container. This value is in use when the current foucs element within this Container is larger than this Container size.
Parameters
scrollIncrement: the size in pixels.
-
findFirstFocusable
Finds the first focusable Component on this Container
Returns
a focusable Component or null if not exists;
-
dragInitiated
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- Overrides:
dragInitiatedin classComponent
-
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:
fireClickedin classComponent
-
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:
isSelectableInteractionin classComponent
-
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:
getGridPosYin classComponent
-
paintComponentBackground
-
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:
getGridPosXin classComponent
-
animateHierarchyAndWait
public void animateHierarchyAndWait(int duration) Animates a pending hierarchy of components into place, this effectively replaces revalidate with a more visual form of animation. This method waits until the operation is completed before returning
Parameters
duration: the duration in milliseconds for the animation
-
createAnimateHierarchy
Animates a pending hierarchy of components into place, this effectively replaces revalidate with a more visual form of animation.
Parameters
duration: the duration in milliseconds for the animation
Returns
the animation object that should be added to the animation manager
-
animateHierarchy
public void animateHierarchy(int duration) Animates a pending hierarchy of components into place, this effectively replaces revalidate with a more visual form of animation
Parameters
duration: the duration in milliseconds for the animation
-
animateHierarchyFadeAndWait
public void animateHierarchyFadeAndWait(int duration, int startingOpacity) Animates a pending hierarchy of components into place, this effectively replaces revalidate with a more visual form of animation. This method waits until the operation is completed before returning
Parameters
-
duration: the duration in milliseconds for the animation -
startingOpacity: the initial opacity to give to the animated components
-
-
createAnimateHierarchyFade
Animates a pending hierarchy of components into place, this effectively replaces revalidate with a more visual form of animation.
Parameters
-
duration: the duration in milliseconds for the animation -
startingOpacity: the initial opacity to give to the animated components
Returns
the animation object that should be added to the animation manager
-
-
animateHierarchyFade
public void animateHierarchyFade(int duration, int startingOpacity) Animates a pending hierarchy of components into place, this effectively replaces revalidate with a more visual form of animation
Parameters
-
duration: the duration in milliseconds for the animation -
startingOpacity: the initial opacity to give to the animated components
-
-
animateLayoutFadeAndWait
public void animateLayoutFadeAndWait(int duration, int startingOpacity) Animates a pending layout into place, this effectively replaces revalidate with a more visual form of animation. This method waits until the operation is completed before returning
Parameters
-
duration: the duration in milliseconds for the animation -
startingOpacity: the initial opacity to give to the animated components
-
-
createAnimateLayoutFadeAndWait
Animates a pending layout into place, this effectively replaces revalidate with a more visual form of animation. This method waits until the operation is completed before returning
Parameters
-
duration: the duration in milliseconds for the animation -
startingOpacity: the initial opacity to give to the animated components
Returns
the animation object that should be added to the animation manager
Deprecated
this was added by mistake!
-
-
animateLayoutFade
public void animateLayoutFade(int duration, int startingOpacity) Animates a pending layout into place, this effectively replaces revalidate with a more visual form of animation
Parameters
-
duration: the duration in milliseconds for the animation -
startingOpacity: the initial opacity to give to the animated components
-
-
createAnimateLayoutFade
Animates a pending layout into place, this effectively replaces revalidate with a more visual form of animation
Parameters
-
duration: the duration in milliseconds for the animation -
startingOpacity: the initial opacity to give to the animated components
Returns
the animation object that should be added to the animation manager
-
-
animateLayoutAndWait
public void animateLayoutAndWait(int duration) Animates a pending layout into place, this effectively replaces revalidate with a more visual form of animation. This method waits until the operation is completed before returning
Parameters
duration: the duration in milliseconds for the animation
-
animateLayout
public void animateLayout(int duration) Animates a pending layout into place, this effectively replaces revalidate with a more visual form of animation
See:
Form hi = new Form("Layout Animations", new BoxLayout(BoxLayout.Y_AXIS)); Button fall = new Button("Fall"); fall.addActionListener((e) -> { for(int iter = 0 ; iter < 10 ; iter++) { Label b = new Label ("Label " + iter); b.setWidth(fall.getWidth()); b.setHeight(fall.getHeight()); b.setY(-fall.getHeight()); hi.add(b); } hi.getContentPane().animateLayout(20000); }); hi.add(fall);Parameters
duration: the duration in milliseconds for the animation
-
updateTabIndices
public int updateTabIndices(int offset) Updates the tab indices in this container recursively. This method is used internally by layout managers when calculating the traversal order of components in a form.
Parameters
offset: The starting tab index.
Returns
The ending tab index (+1)
Deprecated
For internal use only.
-
createAnimateLayout
Animates a pending layout into place, this effectively replaces revalidate with a more visual form of animation
See:
Form hi = new Form("Layout Animations", new BoxLayout(BoxLayout.Y_AXIS)); Button fall = new Button("Fall"); fall.addActionListener((e) -> { for(int iter = 0 ; iter < 10 ; iter++) { Label b = new Label ("Label " + iter); b.setWidth(fall.getWidth()); b.setHeight(fall.getHeight()); b.setY(-fall.getHeight()); hi.add(b); } hi.getContentPane().animateLayout(20000); }); hi.add(fall);Parameters
duration: the duration in milliseconds for the animation
Returns
the animation object that should be added to the animation manager
-
drop
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
Parameters
-
dragged: the component being dropped -
x: the x coordinate of the drop -
y: the y coordinate of the drop
-
-
createAnimateMotion
Creates a motion object for animation, allows subclasses to replace the motion type used in animations (currently defaults to ease-in).
Parameters
-
start: start value -
destination: destination value -
duration: duration of animation
Returns
motion object
-
-
morph
Morph is similar to the replace functionality where a component might be replaced with a component that isn't within the container. However, unlike the replace functionality which uses a transition and assumes the position of the component (and is hence quite flexible) morph can move and resize the component. E.g. after entering text into a text field and pressing submit it can "morph" into a chat bubble located in a different part of the screen.
It is the responsibility of the caller to remove the source component (if desired) and revalidate the container when the animation completes.
Parameters
-
source: source component assumed to be within this container or one of its children -
destination: the destination component -
duration: the time the morph operation should take -
onCompletion: invoked when the morphing completes
-
-
morphAndWait
Morph is similar to the replace functionality where a component might be replaced with a component that isn't within the container. However, unlike the replace functionality which uses a transition and assumes the position of the component (and is hence quite flexible) morph can move and resize the component. E.g. after entering text into a text field and pressing submit it can "morph" into a chat bubble located in a different part of the screen.
It is the responsibility of the caller to remove the source component (if desired) and revalidate the container when the animation completes.
Parameters
-
source: source component assumed to be within this container or one of its children -
destination: the destination component -
duration: the time the morph operation should take
-
-
animateUnlayout
This method is the exact reverse of animateLayout, when completed it leaves the container in an invalid state. It is useful to invoke this in order to remove a component, transition to a different form or provide some other interaction. E.g.:
Form hi = new Form("Layout Animations", new BoxLayout(BoxLayout.Y_AXIS)); Button fall = new Button("Fall"); fall.addActionListener((e) -> { if(hi.getContentPane().getComponentCount() == 1) { fall.setText("Rise"); for(int iter = 0 ; iter { hi.removeAll(); hi.add(fall); hi.revalidate(); });*/ } }); hi.add(fall);Parameters
-
duration: the duration of the animation -
opacity: the opacity to which the layout will reach, allows fading out the components -
callback: if not null will be invoked when unlayouting is complete
-
-
animateUnlayoutAndWait
public void animateUnlayoutAndWait(int duration, int opacity) This method is the exact reverse of animateLayoutAndWait, when completed it leaves the container in an invalid state. It is useful to invoke this in order to remove a component, transition to a different form or provide some other interaction. E.g.:
Form hi = new Form("Layout Animations", new BoxLayout(BoxLayout.Y_AXIS)); Button fall = new Button("Fall"); fall.addActionListener((e) -> { if(hi.getContentPane().getComponentCount() == 1) { fall.setText("Rise"); for(int iter = 0 ; iter { hi.removeAll(); hi.add(fall); hi.revalidate(); });*/ } }); hi.add(fall);Parameters
-
duration: the duration of the animation -
opacity: the opacity to which the layout will reach, allows fading out the components
-
-
createAnimateUnlayout
This method is the exact reverse of createAnimateLayout, when animation is completed it leaves the container in an invalid state. It is useful to invoke this in order to remove a component, transition to a different form or provide some other interaction. E.g.:
Parameters
-
duration: the duration of the animation -
opacity: the opacity to which the layout will reach, allows fading out the components
Returns
the animation object that should be added to the animation manager
-
-
getChildrenAsList
Gets the child components of this Container as a List. Using true as the argument provides a way to obtain all of the children, including children whose full addition is pending while an animation is in progress.
Animation Discussion: If children are added or removed from a Container while its containing Form has an animation in progress, the insertion/deletion isn't complete until after the animation is finished. Most methods to interact with a container's children won't see these pending changes until that time. E.g.:
`// Assume an animation is in progress on the form containing cnt. Label lbl = new Label("Test"); int len = cnt.getComponentCount(); // 0 cnt.addComponent(lbl); int lenAfter = cnt.getComponentCount(); // 0 cnt.contains(lbl); // true cnt.getChildrenAsList(true).size(); // 1 cnt.getChildrenAsList(false).size(); // 0
Button btn = new Button("Press me"); cnt.addComponent(btn); cnt.getComponentCount(); // 0 cnt.getChildrenAsList(true).size(); // 2 cnt.removeComponent(btn); cnt.getComponentCount(); // 0 cnt.getChildrenAsList(true).size(); // 1
`
Parameters
includeQueued: True to reflect queued inserts and removals while an animation is in progress.
Returns
A list including all of the children of this container.
See also
- #iterator(boolean)
-
iterator
Obtains an iterator that iterates over the children of this container. If argument is true, then the iteratator will include queued insertions/deletions while an animation is in progress.
Parameters
includeQueued: True to include queued component insertions and removals while animation is in progress.
Returns
An iterator that iterates over the children of this component.
See also
-
#iterator()
-
#getChildrenAsList(boolean)
-
iterator
-