Класс StackPane
- javafx.scene.Node
-
- javafx.scene.Parent
-
- javafx.scene.layout.Region
-
- javafx.scene.layout.Pane
-
- javafx.scene.layout.StackPane
Все реализованные интерфейсы:
public class StackPane extends Pane
Порядок z-индекса дочерних элементов определяется порядком в списке дочерних элементов, где 0-й элемент — самый нижний, а последний — самый верхний. Если заданы границы и/или отступы, дочерние элементы будут выстроены внутри этих отступов.
Stackpane попытается изменить размер каждого дочернего элемента, чтобы заполнить область содержимого. Если дочерний элемент не может быть изменен в размер StackPane (либо потому, что он не масштабируется, либо его максимальный размер этого не позволяет), то он будет выровнен в области с помощью свойства alignment, которое по умолчанию равно Pos.CENTER.
Пример StackPane:
StackPane stack = new StackPane();
stack.getChildren().addAll(new Rectangle(100,100,Color.BLUE), new Label("Go!)); StackPane выстраивает каждый управляемый дочерний элемент независимо от значения свойства visible дочернего элемента; неуправляемые дочерние элементы игнорируются.
StackPane можно стилизовать с помощью фонов и границ с использованием CSS. Подробности см. в Region.
Диапазон изменения размеров
Родительский элемент StackPane изменяет размер StackPane в пределах диапазона изменения размеров StackPane во время вычисления размеров. По умолчанию StackPane вычисляет этот диапазон на основе его содержимого, как показано в таблице ниже.| ширина | высота | |
|---|---|---|
| минимальная | левые/правые отступы плюс максимальная из минимальных ширины дочерних элементов. | верхние/нижние отступы плюс максимальная из минимальных высот дочерних элементов. |
| предпочтительная | левые/правые отступы плюс максимальная из предпочтительных ширины дочерних элементов. | верхние/нижние отступы плюс максимальная из предпочтительных высот дочерних элементов. |
| максимальная | Double.MAX_VALUE | Double.MAX_VALUE |
Неограниченная максимальная ширина и высота StackPane — указание для родительского элемента, что его можно изменить на размер больше его предпочтительного размера, чтобы заполнить выделенное ему пространство.
StackPane предоставляет свойства для непосредственного задания диапазона размеров. По умолчанию эти свойства имеют значение USE_COMPUTED_SIZE, однако приложение может задавать им другие значения по мере необходимости:
// ensure stackpane is never resized beyond it's preferred size
stackpane.setMaxSize(Region.USE_PREF_SIZE, Region.USE_PREF_SIZE); Приложения могут восстановить вычисленные значения, установив эти свойства обратно в значение USE_COMPUTED_SIZE. StackPane по умолчанию не обрезает свое содержимое, поэтому возможно, что границы дочерних элементов могут выходить за пределы собственных границ, если минимальный размер дочернего элемента не позволяет разместить его в StackPane.
Дополнительные ограничения размещения
Приложение может задавать ограничения для отдельных дочерних элементов, чтобы настроить размещение в StackPane. Для каждого ограничения StackPane предоставляет статический метод для его задания для дочернего элемента.| Ограничение | Тип | Описание |
|---|---|---|
| выравнивание | javafx.geometry.Pos | Выравнивание дочернего элемента внутри StackPane. |
| отступ | javafx.geometry.Insets | Отступ вокруг внешней стороны дочернего элемента. |
Примеры:
// Align the title Label at the bottom-center of the stackpane
Label title = new Label();
StackPane.setAlignment(title, Pos.BOTTOM_CENTER);
stackpane.getChildren.addAll(new ImageView(...), title);
// Create an 8 pixel margin around a listview in the stackpane
ListView list = new ListView();
StackPane.setMargin(list, new Insets(8,8,8,8);
stackpane.getChildren().add(list);
С тех пор:
JavaFX 2.0
-
Резюме свойств
Все методыМетоды экземпляровКонкретные методы Тип Свойство и описание ObjectProperty<Pos>alignmentПо умолчанию выравнивание дочерних элементов по ширине и высоте StackPane.-
Свойства, унаследованные от класса javafx.scene.layout.Region
background, border, cacheShape, centerShape, height, insets, maxHeight, maxWidth, minHeight, minWidth, opaqueInsets, padding, prefHeight, prefWidth, scaleShape, shape, snapToPixel, width
-
Свойства, унаследованные от класса javafx.scene.Parent
needsLayout
-
Свойства, унаследованные от класса javafx.scene.Node
accessibleHelp, accessibleRoleDescription, accessibleRole, accessibleText, blendMode, boundsInLocal, boundsInParent, cacheHint, cache, clip, cursor, depthTest, disabled, disable, effectiveNodeOrientation, effect, eventDispatcher, focused, focusTraversable, hover, id, inputMethodRequests, layoutBounds, layoutX, layoutY, localToParentTransform, localToSceneTransform, managed, mouseTransparent, nodeOrientation, onContextMenuRequested, onDragDetected, onDragDone, onDragDropped, onDragEntered, onDragExited, onDragOver, onInputMethodTextChanged, onKeyPressed, onKeyReleased, onKeyTyped, onMouseClicked, onMouseDragEntered, onMouseDragExited, onMouseDragged, onMouseDragOver, onMouseDragReleased, onMouseEntered, onMouseExited, onMouseMoved, onMousePressed, onMouseReleased, onRotate, onRotationFinished, onRotationStarted, onScrollFinished, onScroll, onScrollStarted, onSwipeDown, onSwipeLeft, onSwipeRight, onSwipeUp, onTouchMoved, onTouchPressed, onTouchReleased, onTouchStationary, onZoomFinished, onZoom, onZoomStarted, opacity, parent, pickOnBounds, pressed, rotate, rotationAxis, scaleX, scaleY, scaleZ, scene, style, translateX, translateY, translateZ, visible
-
-
Краткое описание полей
-
Поля, унаследованные от класса javafx.scene.layout.Region
USE_COMPUTED_SIZE, USE_PREF_SIZE
-
Поля, унаследованные от класса javafx.scene.Node
BASELINE_OFFSET_SAME_AS_HEIGHT
-
-
Краткое описание конструкторов
Конструкторы Конструктор и описание StackPane()Создаёт макет StackPane с выравниванием по умолчанию CENTER.StackPane(Node... children)Создаёт макет StackPane с выравниванием по умолчанию CENTER.
-
Краткое описание методов
Все методыСтатические методыМетоды экземпляровКонкретные методы Модификатор и тип Метод и описание ObjectProperty<Pos>alignmentProperty()По умолчанию выравнивание дочерних элементов по ширине и высоте StackPane.static voidclearConstraints(Node child)Удаляет все ограничения StackPane для узла-потомка.protected doublecomputeMinHeight(double width)Вычисляет минимальную высоту этого региона.protected doublecomputeMinWidth(double height)Вычисляет минимальную ширину этого региона.protected doublecomputePrefHeight(double width)Вычисляет предпочтительную высоту этого региона для заданной ширины; Подклассы Region должны переопределять этот метод, чтобы возвращать подходящее значение, исходя из их содержимого и стратегии вычисления размеров.protected doublecomputePrefWidth(double height)Вычисляет предпочтительную ширину этого региона для заданной высоты.PosgetAlignment()Получает значение свойства alignment.static PosgetAlignment(Node child)Возвращает ограничение выравнивания дочернего элемента, если оно задано.static List<CssMetaData<? extends Styleable,?>>getClassCssMetaData()OrientationgetContentBias()Возвращает ориентацию смещения изменения размера узла для целей вычисления размеров.List<CssMetaData<? extends Styleable,?>>getCssMetaData()Этот метод должен делегироватьNode.getClassCssMetaData(), чтобы можно было получить доступ к CssMetaData узла без необходимости отражения.static InsetsgetMargin(Node child)Возвращает ограничения отступа дочернего элемента, если они заданы.protected voidlayoutChildren()Вызывается во время прохода вычисления размеров, чтобы вычислить размеры дочерних элементов в этомParent.voidrequestLayout()Запрашивает проход вычисления размеров, который будет выполнен перед рендерингом следующей сцены.static voidsetAlignment(Node child, Pos value)Устанавливает выравнивание дочернего элемента при размещении в StackPane.voidsetAlignment(Pos value)Устанавливает значение свойства alignment.static voidsetMargin(Node child, Insets value)Устанавливает отступ для дочернего элемента при размещении в StackPane.-
Методы, унаследованные от класса javafx.scene.layout.Pane
getChildren
-
Методы, унаследованные от класса javafx.scene.layout.Region
backgroundProperty, borderProperty, cacheShapeProperty, centerShapeProperty, computeMaxHeight, computeMaxWidth, getBackground, getBorder, getHeight, getInsets, getMaxHeight, getMaxWidth, getMinHeight, getMinWidth, getOpaqueInsets, getPadding, getPrefHeight, getPrefWidth, getShape, getUserAgentStylesheet, getWidth, heightProperty, insetsProperty, isCacheShape, isCenterShape, isResizable, isScaleShape, isSnapToPixel, layoutInArea, layoutInArea, layoutInArea, layoutInArea, maxHeight, maxHeightProperty, maxWidth, maxWidthProperty, minHeight, minHeightProperty, minWidth, minWidthProperty, opaqueInsetsProperty, paddingProperty, positionInArea, positionInArea, prefHeight, prefHeightProperty, prefWidth, prefWidthProperty, resize, scaleShapeProperty, setBackground, setBorder, setCacheShape, setCenterShape, setHeight, setMaxHeight, setMaxSize, setMaxWidth, setMinHeight, setMinSize, setMinWidth, setOpaqueInsets, setPadding, setPrefHeight, setPrefSize, setPrefWidth, setScaleShape, setShape, setSnapToPixel, setWidth, shapeProperty, snappedBottomInset, snappedLeftInset, snappedRightInset, snappedTopInset, snapPosition, snapSize, snapSpace, snapToPixelProperty, widthProperty
-
Методы, унаследованные от класса javafx.scene.Parent
getBaselineOffset, getChildrenUnmodifiable, getManagedChildren, getStylesheets, isNeedsLayout, layout, lookup, needsLayoutProperty, queryAccessibleAttribute, requestParentLayout, setNeedsLayout, updateBounds
-
Методы, унаследованные от класса javafx.scene.Node
accessibleHelpProperty, accessibleRoleDescriptionProperty, accessibleRoleProperty, accessibleTextProperty, addEventFilter, addEventHandler, applyCss, autosize, blendModeProperty, boundsInLocalProperty, boundsInParentProperty, buildEventDispatchChain, cacheHintProperty, cacheProperty, clipProperty, computeAreaInScreen, contains, contains, cursorProperty, depthTestProperty, disabledProperty, disableProperty, effectiveNodeOrientationProperty, effectProperty, eventDispatcherProperty, executeAccessibleAction, fireEvent, focusedProperty, focusTraversableProperty, getAccessibleHelp, getAccessibleRole, getAccessibleRoleDescription, getAccessibleText, getBlendMode, getBoundsInLocal, getBoundsInParent, getCacheHint, getClip, getCursor, getDepthTest, getEffect, getEffectiveNodeOrientation, getEventDispatcher, getId, getInputMethodRequests, getLayoutBounds, getLayoutX, getLayoutY, getLocalToParentTransform, getLocalToSceneTransform, getNodeOrientation, getOnContextMenuRequested, getOnDragDetected, getOnDragDone, getOnDragDropped, getOnDragEntered, getOnDragExited, getOnDragOver, getOnInputMethodTextChanged, getOnKeyPressed, getOnKeyReleased, getOnKeyTyped, getOnMouseClicked, getOnMouseDragEntered, getOnMouseDragExited, getOnMouseDragged, getOnMouseDragOver, getOnMouseDragReleased, getOnMouseEntered, getOnMouseExited, getOnMouseMoved, getOnMousePressed, getOnMouseReleased, getOnRotate, getOnRotationFinished, getOnRotationStarted, getOnScroll, getOnScrollFinished, getOnScrollStarted, getOnSwipeDown, getOnSwipeLeft, getOnSwipeRight, getOnSwipeUp, getOnTouchMoved, getOnTouchPressed, getOnTouchReleased, getOnTouchStationary, getOnZoom, getOnZoomFinished, getOnZoomStarted, getOpacity, getParent, getProperties, getPseudoClassStates, getRotate, getRotationAxis, getScaleX, getScaleY, getScaleZ, getScene, getStyle, getStyleableParent, getStyleClass, getTransforms, getTranslateX, getTranslateY, getTranslateZ, getTypeSelector, getUserData, hasProperties, hoverProperty, idProperty, inputMethodRequestsProperty, intersects, intersects, isCache, isDisable, isDisabled, isFocused, isFocusTraversable, isHover, isManaged, isMouseTransparent, isPickOnBounds, isPressed, isVisible, layoutBoundsProperty, layoutXProperty, layoutYProperty, localToParent, localToParent, localToParent, localToParent, localToParent, localToParentTransformProperty, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToSceneTransformProperty, localToScreen, localToScreen, localToScreen, localToScreen, localToScreen, lookupAll, managedProperty, mouseTransparentProperty, nodeOrientationProperty, notifyAccessibleAttributeChanged, onContextMenuRequestedProperty, onDragDetectedProperty, onDragDoneProperty, onDragDroppedProperty, onDragEnteredProperty, onDragExitedProperty, onDragOverProperty, onInputMethodTextChangedProperty, onKeyPressedProperty, onKeyReleasedProperty, onKeyTypedProperty, onMouseClickedProperty, onMouseDragEnteredProperty, onMouseDragExitedProperty, onMouseDraggedProperty, onMouseDragOverProperty, onMouseDragReleasedProperty, onMouseEnteredProperty, onMouseExitedProperty, onMouseMovedProperty, onMousePressedProperty, onMouseReleasedProperty, onRotateProperty, onRotationFinishedProperty, onRotationStartedProperty, onScrollFinishedProperty, onScrollProperty, onScrollStartedProperty, onSwipeDownProperty, onSwipeLeftProperty, onSwipeRightProperty, onSwipeUpProperty, onTouchMovedProperty, onTouchPressedProperty, onTouchReleasedProperty, onTouchStationaryProperty, onZoomFinishedProperty, onZoomProperty, onZoomStartedProperty, opacityProperty, parentProperty, parentToLocal, parentToLocal, parentToLocal, parentToLocal, parentToLocal, pickOnBoundsProperty, pressedProperty, pseudoClassStateChanged, relocate, removeEventFilter, removeEventHandler, requestFocus, resizeRelocate, rotateProperty, rotationAxisProperty, scaleXProperty, scaleYProperty, scaleZProperty, sceneProperty, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, screenToLocal, screenToLocal, screenToLocal, setAccessibleHelp, setAccessibleRole, setAccessibleRoleDescription, setAccessibleText, setBlendMode, setCache, setCacheHint, setClip, setCursor, setDepthTest, setDisable, setDisabled, setEffect, setEventDispatcher, setEventHandler, setFocused, setFocusTraversable, setHover, setId, setInputMethodRequests, setLayoutX, setLayoutY, setManaged, setMouseTransparent, setNodeOrientation, setOnContextMenuRequested, setOnDragDetected, setOnDragDone, setOnDragDropped, setOnDragEntered, setOnDragExited, setOnDragOver, setOnInputMethodTextChanged, setOnKeyPressed, setOnKeyReleased, setOnKeyTyped, setOnMouseClicked, setOnMouseDragEntered, setOnMouseDragExited, setOnMouseDragged, setOnMouseDragOver, setOnMouseDragReleased, setOnMouseEntered, setOnMouseExited, setOnMouseMoved, setOnMousePressed, setOnMouseReleased, setOnRotate, setOnRotationFinished, setOnRotationStarted, setOnScroll, setOnScrollFinished, setOnScrollStarted, setOnSwipeDown, setOnSwipeLeft, setOnSwipeRight, setOnSwipeUp, setOnTouchMoved, setOnTouchPressed, setOnTouchReleased, setOnTouchStationary, setOnZoom, setOnZoomFinished, setOnZoomStarted, setOpacity, setPickOnBounds, setPressed, setRotate, setRotationAxis, setScaleX, setScaleY, setScaleZ, setStyle, setTranslateX, setTranslateY, setTranslateZ, setUserData, setVisible, snapshot, snapshot, startDragAndDrop, startFullDrag, styleProperty, toBack, toFront, toString, translateXProperty, translateYProperty, translateZProperty, usesMirroring, visibleProperty
-
-
Подробное описание свойства
-
alignment
public final ObjectProperty<Pos> alignmentProperty
По умолчанию выравнивание дочерних элементов по ширине и высоте области StackPane. Это может быть переопределено для отдельных дочерних элементов путем установки ограничения выравнивания дочернего элемента.См. также:
-
-
Подробное описание конструктора
-
StackPane
public StackPane()
Создает компоновку StackPane с выравниванием по умолчанию CENTER.
-
StackPane
public StackPane(Node... children)
Создаёт компоновку StackPane с выравниванием по умолчанию CENTER.Параметры:
children- Начальный набор дочерних элементов для этой области.С:
JavaFX 8.0
-
-
Подробное описание метода
-
setAlignment
public static void setAlignment(Node child, Pos value)Устанавливает выравнивание дочернего элемента при размещении его в области stackpane. При установке переопределяет выравнивание по умолчанию stackpane. Установка значения null удалит ограничение.Параметры:
child- дочерний узел stackpane
-
getAlignment
public static Pos getAlignment(Node child)
Возвращает ограничение выравнивания дочернего элемента, если оно задано.Параметры:
child- дочерний узел stackpaneВозвращает:
позицию выравнивания для дочернего элемента или null, если выравнивание не было установлено
-
setMargin
public static void setMargin(Node child, Insets value)Устанавливает отступ для дочернего элемента при размещении его в области stackpane. Если задано, stackpane расположит дочерний элемент с отступом вокруг него. Установка значения null удалит ограничение.Параметры:
child- дочерний узел stackpane
-
getMargin
public static Insets getMargin(Node child)
Возвращает ограничения отступа дочернего элемента, если они заданы.Параметры:
child- дочерний узел stackpaneВозвращает:
отступ для дочернего элемента или null, если отступ не был задан
-
clearConstraints
public static void clearConstraints(Node child)
Удаляет все ограничения stackpane для дочернего узла.Параметры:
child- дочерний узел
-
alignmentProperty
public final ObjectProperty<Pos> alignmentProperty()
По умолчанию выравнивание дочерних элементов по ширине и высоте области StackPane. Это может быть переопределено для отдельных дочерних элементов путем установки ограничения выравнивания дочернего элемента.См. также:
-
setAlignment
public final void setAlignment(Pos value)
Устанавливает значение свойства alignment.Описание свойства:
По умолчанию выравнивание дочерних элементов по ширине и высоте области StackPane. Это может быть переопределено для отдельных дочерних элементов путем установки ограничения выравнивания дочернего элемента.
-
getAlignment
public final Pos getAlignment()
Получает значение свойства alignment.Описание свойства:
По умолчанию выравнивание дочерних элементов по ширине и высоте области StackPane. Это может быть переопределено для отдельных дочерних элементов путем установки ограничения выравнивания дочернего элемента.
-
getContentBias
public Orientation getContentBias()
Описание скопировано из класса:NodeВозвращает ориентацию смещения изменения размера узла для целей компоновки. Если у типа узла нет смещения, возвращает null. Если узел изменяет размер и его высота зависит от его ширины, возвращает HORIZONTAL, в противном случае, если его ширина зависит от его высоты, возвращает VERTICAL.Подклассы изменяющих размер элементов должны переопределить этот метод, чтобы вернуть соответствующее значение.
Переопределяет:
getContentBiasв классеNodeВозвращает:
первое не-null contentBias его управляемых дочерних элементов или null, если ни у одного управляемого дочернего элемента нет смещения.
-
computeMinWidth
protected double computeMinWidth(double height)
Описание скопировано из класса:RegionВычисляет минимальную ширину этой области. По умолчанию возвращает сумму левого и правого отступов. Подклассы Region должны переопределить этот метод, чтобы вернуть соответствующее значение на основе своего содержимого и стратегии компоновки. Если у подкласса нет смещения VERTICAL, то параметр высоты можно игнорировать.Переопределяет:
computeMinWidthв классеRegionПараметры:
height- высота, которая должна использоваться, если минимальная ширина зависит от неёВозвращает:
вычисленная минимальная ширина этой области
-
computeMinHeight
protected double computeMinHeight(double width)
Описание скопировано из класса:RegionВычисляет минимальную высоту этой области. По умолчанию возвращает сумму верхнего и нижнего отступов. Подклассы Region должны переопределить этот метод, чтобы вернуть соответствующее значение на основе своего содержимого и стратегии компоновки. Если у подкласса нет смещения HORIZONTAL, то параметр ширины можно игнорировать.Переопределяет:
computeMinHeightв классеRegionПараметры:
width- ширина, которая должна использоваться, если минимальная высота зависит от неёВозвращает:
вычисленная минимальная высота этой области
-
computePrefWidth
protected double computePrefWidth(double height)
Описание скопировано из класса:RegionВычисляет предпочтительную ширину этой области для заданной высоты. Подклассы Region должны переопределить этот метод, чтобы вернуть соответствующее значение на основе своего содержимого и стратегии компоновки. Если у подкласса нет смещения VERTICAL, то параметр высоты можно игнорировать.Переопределяет:
computePrefWidthв классеRegionПараметры:
height- высота, которая должна использоваться, если предпочтительная ширина зависит от неёВозвращает:
вычисленная предпочтительная ширина этой области
-
computePrefHeight
protected double computePrefHeight(double width)
Описание скопировано из класса:RegionВычисляет предпочтительную высоту этой области для заданной ширины. Подклассы Region должны переопределить этот метод, чтобы вернуть соответствующее значение на основе своего содержимого и стратегии компоновки. Если у подкласса нет смещения HORIZONTAL, то параметр ширины можно игнорировать.Переопределяет:
computePrefHeightв классеRegionПараметры:
width- ширина, которая должна использоваться, если предпочтительная высота зависит от неёВозвращает:
вычисленная предпочтительная высота этой области
-
requestLayout
public void requestLayout()
Описание скопировано из класса:ParentЗапрашивает проход компоновки перед рендерингом следующей сцены. Это буферизуется асинхронно, чтобы произойти один раз за "пульс" или кадр анимации.Если этот родитель является корневым элементом компоновки или неуправляемым, он будет добавлен непосредственно в список грязной компоновки сцены, в противном случае будет вызван requestParentLayout.
Переопределяет:
requestLayoutв классеParent
-
layoutChildren
protected void layoutChildren()
Описание скопировано из класса:ParentВызывается во время прохода компоновки для компоновки дочерних элементов в этойParent. По умолчанию он устанавливает размер управляемого, изменяемого содержимого на их предпочтительные размеры и не выполняет позиционирование узлов.Подклассы должны переопределить эту функцию для компоновки содержимого по мере необходимости.
Переопределяет:
layoutChildrenв классеParent
-
getClassCssMetaData
public static List<CssMetaData<? extends Styleable,?>> getClassCssMetaData()
Возвращает:
CssMetaData, связанный с этим классом, который может включать CssMetaData его суперклассов.
С:
JavaFX 8.0
-
getCssMetaData
public List<CssMetaData<? extends Styleable,?>> getCssMetaData()
Этот метод должен делегироватьNode.getClassCssMetaData(), чтобы CssMetaData узла можно было получить без необходимости рефлексии.Определяет:
getCssMetaDataв интерфейсеStyleableПереопределяет:
getCssMetaDataв классеRegionВозвращает:
CssMetaData, связанный с этим узлом, который может включать CssMetaData его суперклассов.
С:
JavaFX 8.0
-
© 2008, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from JavaFX API Documentation.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Java, JavaFX and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.