Класс HBox
- Все реализованные интерфейсы:
-
Styleable,EventTarget
public class HBox
extends Pane Пример HBox:
HBox hbox = new HBox(8); // spacing = 8
hbox.getChildren().addAll(new Label("Name:), new TextBox());
HBox изменит размеры дочерних элементов (если они изменяемы) до их предпочтительных ширин и использует свойство fillHeight для определения, следует ли изменять их высоту для заполнения своей высоты или сохранить их высоту до предпочтительной (fillHeight по умолчанию true). Выравнивание содержимого контролируется свойством alignment, которое по умолчанию равно Pos.TOP_LEFT. Если размер hbox больше, чем предпочтительная ширина, по умолчанию он сохранит размеры дочерних элементов до их предпочтительных ширин, оставив дополнительное пространство неиспользованным. Если приложение хочет, чтобы один или несколько дочерних элементов использовали это дополнительное пространство, можно дополнительно установить ограничение hgrow для дочернего элемента. Подробнее см. "Дополнительные ограничения макета".
HBox выстраивает каждый управляемый дочерний элемент независимо от значения свойства visible дочернего элемента; неуправляемые элементы игнорируются.
Диапазон изменения размеров
Родительский элемент hbox изменит размер hbox в пределах диапазона изменения размеров hbox во время макета. По умолчанию hbox вычисляет этот диапазон на основе своего содержимого, как показано в таблице ниже.
| ширина | высота | |
|---|---|---|
| минимальное | левые/правые отступы плюс сумма минимальной ширины каждого дочернего элемента плюс отступы между каждым дочерним элементом. | верхние/нижние отступы плюс максимальная из высот дочерних элементов. |
| предпочтительное | левые/правые отступы плюс сумма предпочтительной ширины каждого дочернего элемента плюс отступы между каждым дочерним элементом. | верхние/нижние отступы плюс максимальная из высот дочерних элементов. |
| максимальное | Double.MAX_VALUE | Double.MAX_VALUE |
Неограниченная максимальная ширина и высота hbox указывают родителю, что он может быть изменен за пределы своего предпочтительного размера для заполнения любого выделенного для него пространства.
HBox предоставляет свойства для прямого задания диапазона размеров. Эти свойства по умолчанию имеют значение USE_COMPUTED_SIZE, однако приложение может установить их на другие значения по мере необходимости:
hbox.setPrefWidth(400);
Приложения могут восстановить вычисленные значения, установив эти свойства обратно в USE_COMPUTED_SIZE. HBox по умолчанию не обрезает свое содержимое, поэтому границы дочерних элементов могут выходить за пределы его собственных границ, если минимальный размер дочернего элемента препятствует его размещению внутри hbox.
Дополнительные ограничения макета
Приложение может установить ограничения для отдельных дочерних элементов для настройки макета HBox. Для каждого ограничения HBox предоставляет статический метод для его установки на дочернем элементе.
| Ограничение | Тип | Описание |
|---|---|---|
| hgrow | javafx.scene.layout.Priority | Приоритет горизонтального увеличения для дочернего элемента. |
| margin | javafx.geometry.Insets | Отступ вокруг внешней стороны дочернего элемента. |
Например, если hbox нужно, чтобы TextField занимал все дополнительное пространство:
HBox hbox = new HBox();
TextField field = new TextField();
HBox.setHgrow(field, Priority.ALWAYS);
hbox.getChildren().addAll(new Label("Search:"), field, new Button("Go"));
Если несколько дочерних элементов имеют заданный одинаковый приоритет увеличения, hbox распределит равные части пространства каждому. HBox увеличит размер дочернего элемента только до его максимальной ширины, поэтому если у дочернего элемента есть максимальная ширина, отличная от Double.MAX_VALUE, приложение может потребоваться переопределить максимум, чтобы разрешить увеличение. Например:
HBox hbox = new HBox();
Button button1 = new Button("Add");
Button button2 = new Button("Remove");
HBox.setHgrow(button1, Priority.ALWAYS);
HBox.setHgrow(button2, Priority.ALWAYS);
button1.setMaxWidth(Double.MAX_VALUE);
button2.setMaxWidth(Double.MAX_VALUE);
hbox.getChildren().addAll(button1, button2);
- С момента:
- JavaFX 2.0
Краткое описание свойств
| Тип | Свойство | Описание |
|---|---|---|
ObjectProperty<Pos> | alignment | Общее выравнивание дочерних элементов по ширине и высоте hbox. |
BooleanProperty | fillHeight | Определяет, будут ли изменяемые по размеру дочерние элементы изменять свой размер, чтобы заполнить всю высоту hbox, или будут изменены до их предпочтительной высоты и выровнены в соответствии со значением alignment vpos. |
DoubleProperty | spacing | Количество горизонтального пространства между каждым дочерним элементом в hbox. |
Свойства, объявленные в классе 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, viewOrder, visible
Краткое описание полей
Поля, объявленные в классе javafx.scene.layout.Region
USE_COMPUTED_SIZE, USE_PREF_SIZE
Поля, объявленные в классе javafx.scene.Node
BASELINE_OFFSET_SAME_AS_HEIGHT
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
HBox() | Создает макет HBox с spacing = 0. |
HBox(double spacing) | Создает макет HBox с указанным отступом между дочерними элементами. |
HBox(double spacing,
Node... children) | Создает макет HBox с указанным отступом между дочерними элементами. |
HBox(Node... children) | Создает макет HBox с spacing = 0. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
ObjectProperty<Pos> | alignmentProperty() | Общее выравнивание дочерних элементов по ширине и высоте hbox. |
static void | clearConstraints(Node child) | Удаляет все ограничения hbox для дочернего узла. |
BooleanProperty | fillHeightProperty() | Определяет, будут ли изменяемые по размеру дочерние элементы изменять свой размер, чтобы заполнить всю высоту hbox, или будут изменены до их предпочтительной высоты и выровнены в соответствии со значением alignment vpos. |
Pos | getAlignment() | Возвращает значение свойства alignment. |
static List<CssMetaData<? extends Styleable,?>> | getClassCssMetaData() | |
Orientation | getContentBias() | Возвращает ориентацию смещения изменения размера узла для целей макета. |
List<CssMetaData<? extends Styleable,?>> | getCssMetaData() | Этот метод должен делегировать Node.getClassCssMetaData(), чтобы можно было получить доступ к CssMetaData узла без необходимости в рефлексии. |
static Priority | getHgrow(Node child) | Возвращает ограничение hgrow для дочернего элемента, если оно установлено. |
static Insets | getMargin(Node child) | Возвращает ограничение отступа для дочернего элемента, если оно установлено. |
double | getSpacing() | Возвращает значение свойства spacing. |
boolean | isFillHeight() | Возвращает значение свойства fillHeight. |
void | setAlignment(Pos value) | Устанавливает значение свойства alignment. |
void | setFillHeight(boolean value) | Устанавливает значение свойства fillHeight. |
static void | setHgrow(Node child,
Priority value) | Устанавливает приоритет горизонтального увеличения для дочернего элемента при содержании в hbox. |
static void | setMargin(Node child,
Insets value) | Устанавливает отступ для дочернего элемента при содержании в hbox. |
void | setSpacing(double value) | Устанавливает значение свойства spacing. |
DoubleProperty | spacingProperty() | Количество горизонтального пространства между каждым дочерним элементом в hbox. |
Методы, объявленные в классе javafx.scene.layout.Pane
getChildren
Методы, объявленные в классе javafx.scene.layout.Region
backgroundProperty, borderProperty, cacheShapeProperty, centerShapeProperty, computeMaxHeight, computeMaxWidth, computeMinHeight, computeMinWidth, computePrefHeight, computePrefWidth, 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, snapPositionX, snapPositionY, snapSize, snapSizeX, snapSizeY, snapSpace, snapSpaceX, snapSpaceY, snapToPixelProperty, widthProperty
Методы, объявленные в классе javafx.scene.Parent
getBaselineOffset, getChildrenUnmodifiable, getManagedChildren, getStylesheets, isNeedsLayout, layout, layoutChildren, needsLayoutProperty, requestLayout, 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, getInitialCursor, getInitialFocusTraversable, 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, getTransforms, getTranslateX, getTranslateY, getTranslateZ, getTypeSelector, getUserData, getViewOrder, 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, lookup, 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, queryAccessibleAttribute, 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, setViewOrder, setVisible, snapshot, snapshot, startDragAndDrop, startFullDrag, styleProperty, toBack, toFront, toString, translateXProperty, translateYProperty, translateZProperty, usesMirroring, viewOrderProperty, visibleProperty
Методы, объявленные в классе java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Методы, объявленные в интерфейсе javafx.css.Styleable
getStyleableNode, getStyleClass
Подробное описание свойств
spacing
public final DoubleProperty spacingProperty
- См. также:
-
getSpacing(),setSpacing(double)
alignment
public final ObjectProperty<Pos> alignmentProperty
- См. также:
-
getAlignment(),setAlignment(Pos)
fillHeight
public final BooleanProperty fillHeightProperty
alignment vpos. Обратите внимание, что если вертикальное выравнивание hbox установлено в BASELINE, то это свойство будет проигнорировано, и дочерние элементы будут изменены до своих предпочтительных высот.- См. также:
-
isFillHeight(),setFillHeight(boolean)
Подробное описание конструкторов
HBox
public HBox()
HBox с spacing = 0.HBox
public HBox(double spacing)
HBox со заданным отступом между дочерними элементами.- Параметры:
-
spacing- количество горизонтального пространства между каждым дочерним элементом
HBox
public HBox(Node... children)
HBox с spacing = 0.- Параметры:
-
children- начальный набор дочерних элементов для этого контейнера - С:
- JavaFX 8.0
HBox
public HBox(double spacing, Node... children)
HBox со заданным отступом между дочерними элементами.- Параметры:
-
spacing- количество горизонтального пространства между каждым дочерним элементом -
children- начальный набор дочерних элементов для этого контейнера - С:
- JavaFX 8.0
Подробное описание методов
setHgrow
public static void setHgrow(Node child, Priority value)
Установка значения в null удалит ограничение.
- Параметры:
-
child- дочерний элемент hbox -
value- приоритет горизонтального расширения для дочернего элемента
getHgrow
public static Priority getHgrow(Node child)
- Параметры:
-
child- дочерний узел hbox - Возвращает:
- приоритет горизонтального расширения для дочернего элемента или null, если приоритет не был установлен
setMargin
public static void setMargin(Node child, Insets value)
- Параметры:
-
child- дочерний элемент hbox -
value- отступ вокруг дочернего элемента
getMargin
public static Insets getMargin(Node child)
- Параметры:
-
child- дочерний узел hbox - Возвращает:
- отступ для дочернего элемента или null, если отступ не был установлен
clearConstraints
public static void clearConstraints(Node child)
- Параметры:
-
child- дочерний узел
spacingProperty
public final DoubleProperty spacingProperty()
- См. также:
-
getSpacing(),setSpacing(double)
setSpacing
public final void setSpacing(double value)
- Описание свойства:
- Количество горизонтального пространства между каждым дочерним элементом в hbox.
getSpacing
public final double getSpacing()
- Описание свойства:
- Количество горизонтального пространства между каждым дочерним элементом в hbox.
alignmentProperty
public final ObjectProperty<Pos> alignmentProperty()
- См. также:
-
getAlignment(),setAlignment(Pos)
setAlignment
public final void setAlignment(Pos value)
- Описание свойства:
- Общее выравнивание дочерних элементов по ширине и высоте hbox.
getAlignment
public final Pos getAlignment()
- Описание свойства:
- Общее выравнивание дочерних элементов по ширине и высоте hbox.
fillHeightProperty
public final BooleanProperty fillHeightProperty()
alignment vpos. Обратите внимание, что если вертикальное выравнивание hbox установлено в BASELINE, то это свойство будет проигнорировано, и дочерние элементы будут изменены до своих предпочтительных высот.- См. также:
-
isFillHeight(),setFillHeight(boolean)
setFillHeight
public final void setFillHeight(boolean value)
- Описание свойства:
- Определяет, будут ли изменяемые по размеру дочерние элементы изменены в высоту для заполнения всей высоты hbox или изменены до предпочтительной высоты и выровнены в соответствии со значением
alignmentvpos. Обратите внимание, что если вертикальное выравнивание hbox установлено в BASELINE, то это свойство будет проигнорировано, и дочерние элементы будут изменены до своих предпочтительных высот.
isFillHeight
public final boolean isFillHeight()
- Описание свойства:
- Определяет, будут ли изменяемые по размеру дочерние элементы изменены в высоту для заполнения всей высоты hbox или изменены до предпочтительной высоты и выровнены в соответствии со значением
alignmentvpos. Обратите внимание, что если вертикальное выравнивание hbox установлено в BASELINE, то это свойство будет проигнорировано, и дочерние элементы будут изменены до своих предпочтительных высот.
getContentBias
public Orientation getContentBias()
NodeПодклассы, изменяющие размер, должны переопределить этот метод для возврата соответствующего значения.
- Переопределяет:
-
getContentBiasв классеNode - Возвращает:
- null, если ни один из его дочерних элементов не имеет смещения содержимого.
- См. также:
-
Node.isResizable(),Node.minWidth(double),Node.minHeight(double),Node.prefWidth(double),Node.prefHeight(double),Node.maxWidth(double),Node.maxHeight(double)
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.