Класс ButtonBar
- javafx.scene.Node
-
- javafx.scene.Parent
-
- javafx.scene.layout.Region
-
- javafx.scene.control.Control
-
- javafx.scene.control.ButtonBar
Все реализуемые интерфейсы:
public class ButtonBar extends Control
HBox с дополнительной функциональностью для размещения кнопок в соответствии с операционной системой. Другими словами, любой узел может быть помечен (с помощью метода setButtonData(Node, ButtonData)), помещен внутри ButtonBar (с помощью списка getButtons()), и затем будет позиционироваться относительно других узлов в списке кнопок на основе их меток, а также заданного button order для ButtonBar. **Унификация размера кнопок** По умолчанию все кнопки в ButtonBar имеют одинаковый размер, то есть все кнопки занимают ширину самой широкой кнопки. Можно отказаться от этого для каждой кнопки, вызвав метод setButtonUniformSize(Node, boolean) со значением false.
Если кнопка исключена из унификации размеров, она не будет переразмеряться от своего предпочтительного размера, а также будет исключена из процесса измерения, поэтому её размер не повлияет на вычисление максимального размера всех кнопок в ButtonBar.
Скриншоты
Поскольку ButtonBar поддерживает Windows, Mac OS и Linux, ниже представлены три скриншота с одинаковыми кнопками, расположенными на каждой из трёх операционных систем.
Windows:
Mac OS:
Linux:
Примеры кода
Создание и использование ButtonBar простое, выполните следующие действия:
// Create the ButtonBar instance
ButtonBar buttonBar = new ButtonBar();
// Create the buttons to go into the ButtonBar
Button yesButton = new Button("Yes");
ButtonBar.setButtonData(yesButton, ButtonData.YES);
Button noButton = new Button("No");
ButtonBar.setButtonData(noButton, ButtonData.NO);
// Add buttons to the ButtonBar
buttonBar.getButtons().addAll(yesButton, noButton); Приведённый выше пример кода расположит кнопки «Да» и «Нет» в соответствии с операционной системой пользователя. Это означает, что в Windows и Linux кнопка «Да» будет перед кнопкой «Нет», а в Mac OS — «Нет», а затем «Да».
В большинстве случаев макет, специфичный для ОС, является наилучшим выбором, но в случаях, когда требуется пользовательский макет, это достигается путём изменения button order property. Это похожие на шифр строки, являющиеся сокращёнными представлениями порядка кнопок. Встроенные порядки для Windows, Mac OS и Linux:
| Windows: | L_E+U+FBXI_YNOCAH_R |
| Mac OS: | L_HE+U+FBIX_NCYOA_R |
| Linux: | L_HE+UNYACBXIO_R |
Обратитесь к перечислению ButtonBar.ButtonData для описания значения каждого из этих символов. Однако, если ваш ButtonBar состоит только из кнопок ButtonBar.ButtonData.YES и ButtonBar.ButtonData.NO, вы всегда хотите, чтобы кнопки «Да» были перед кнопками «Нет», и вы хотите, чтобы кнопки были right-aligned, вы можете сделать следующее:
// Create the ButtonBar instance
ButtonBar buttonBar = new ButtonBar();
// Set the custom button order
buttonBar.setButtonOrder("+YN");
С момента:
JavaFX 8u40
См. также:
-
Резюме свойств
Все методыМетоды экземпляраКонкретные методы Тип Свойство и описание DoublePropertybuttonMinWidthУказывает минимальную ширину всех кнопок, размещённых в этой панели кнопок.StringPropertybuttonOrderПорядок стандартных кнопок в стандартной панели кнопок.-
Свойства, унаследованные от класса javafx.scene.control.Control
contextMenu, skin, tooltip
-
Свойства, унаследованные от класса 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
-
-
Резюме вложенных классов
Вложенные классы Модификатор и тип Класс и описание static classButtonBar.ButtonDataПеречисление всех доступных меток данных кнопок.
-
Резюме полей
Поля Модификатор и тип Поле и описание static StringBUTTON_ORDER_LINUXСтандартный порядок кнопок в Linux (конкретно, GNOME).static StringBUTTON_ORDER_MAC_OSСтандартный порядок кнопок в Mac OS.static StringBUTTON_ORDER_NONEСтрока порядка кнопок, указывающая, что порядок кнопок отсутствует.static StringBUTTON_ORDER_WINDOWSСтандартный порядок кнопок в Windows.-
Поля, унаследованные от класса javafx.scene.layout.Region
USE_COMPUTED_SIZE, USE_PREF_SIZE
-
Поля, унаследованные от класса javafx.scene.Node
BASELINE_OFFSET_SAME_AS_HEIGHT
-
-
Резюме конструкторов
Конструкторы Конструктор и описание ButtonBar()Создаёт экземпляр ButtonBar по умолчанию, используя свойства по умолчанию для операционной системы пользователя.ButtonBar(String buttonOrder)Создаёт ButtonBar с заданным порядком кнопок (подробнее см.buttonOrderProperty()).
-
Резюме методов
Все методыСтатические методыМетоды экземпляраКонкретные методы Модификатор и тип Метод и описание DoublePropertybuttonMinWidthProperty()Указывает минимальную ширину всех кнопок, размещённых в этой панели кнопок.StringPropertybuttonOrderProperty()Порядок стандартных кнопок в стандартной панели кнопок.protected Skin<?>createDefaultSkin()Создаёт новый экземпляр стандартной темы для данного элемента управления.static ButtonBar.ButtonDatagetButtonData(Node button)Возвращает ранее заданное свойство ButtonData для данной кнопки.doublegetButtonMinWidth()Возвращает минимальную ширину всех кнопок, размещённых в этой панели кнопок.StringgetButtonOrder()Возвращает текущее значениеbutton order.ObservableList<Node>getButtons()Размещение кнопок в этом списке ObservableList укажет ButtonBar на позиционирование кнопок относительно друг друга на основе указанныхButtonBar.ButtonData.static booleanisButtonUniformSize(Node button)Возвращает, участвует ли данный узел в расчётах унификации размеров или нет.static voidsetButtonData(Node button, ButtonBar.ButtonData buttonData)Устанавливает заданное значение ButtonData для данной кнопки.voidsetButtonMinWidth(double value)Устанавливает минимальную ширину всех кнопок, размещённых в этой панели кнопок.voidsetButtonOrder(String buttonOrder)Устанавливаетbutton orderstatic voidsetButtonUniformSize(Node button, boolean uniformSize)По умолчанию все кнопки в ButtonBar имеют одинаковый размер, то есть все кнопки занимают ширину самой широкой кнопки.-
Методы, унаследованные от класса javafx.scene.control.Control
computeMaxHeight, computeMaxWidth, computeMinHeight, computeMinWidth, computePrefHeight, computePrefWidth, contextMenuProperty, executeAccessibleAction, getBaselineOffset, getClassCssMetaData, getContextMenu, getControlCssMetaData, getCssMetaData, getSkin, getTooltip, isResizable, layoutChildren, queryAccessibleAttribute, setContextMenu, setSkin, setTooltip, skinProperty, tooltipProperty
-
Методы, унаследованные от класса javafx.scene.layout.Region
backgroundProperty, borderProperty, cacheShapeProperty, centerShapeProperty, getBackground, getBorder, getHeight, getInsets, getMaxHeight, getMaxWidth, getMinHeight, getMinWidth, getOpaqueInsets, getPadding, getPrefHeight, getPrefWidth, getShape, getUserAgentStylesheet, getWidth, heightProperty, insetsProperty, isCacheShape, isCenterShape, 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
getChildren, getChildrenUnmodifiable, getManagedChildren, getStylesheets, isNeedsLayout, layout, lookup, 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, fireEvent, focusedProperty, focusTraversableProperty, getAccessibleHelp, getAccessibleRole, getAccessibleRoleDescription, getAccessibleText, getBlendMode, getBoundsInLocal, getBoundsInParent, getCacheHint, getClip, getContentBias, 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
-
-
Подробное описание свойства
-
buttonOrder
public final StringProperty buttonOrderProperty
Порядок стандартных кнопок в стандартной панели кнопок. Одна буква на значение перечисленияButtonBar.ButtonData. Также доступны стандартные порядки кнопок для операционных систем:BUTTON_ORDER_WINDOWS,BUTTON_ORDER_MAC_OSиBUTTON_ORDER_LINUX.См. также:
-
buttonMinWidth
public final DoubleProperty buttonMinWidthProperty
Устанавливает минимальную ширину всех кнопок, размещённых на этой панели кнопок.См. также:
-
-
Подробное описание поля
-
BUTTON_ORDER_WINDOWS
public static final String BUTTON_ORDER_WINDOWS
Стандартный порядок кнопок в Windows.См. также:
-
BUTTON_ORDER_MAC_OS
public static final String BUTTON_ORDER_MAC_OS
Стандартный порядок кнопок в Mac OS.См. также:
-
BUTTON_ORDER_LINUX
public static final String BUTTON_ORDER_LINUX
Стандартный порядок кнопок в Linux (в частности, GNOME).См. также:
-
BUTTON_ORDER_NONE
public static final String BUTTON_ORDER_NONE
Строка порядка кнопок, указывающая на отсутствие порядка. Другими словами, кнопки будут размещены в порядке, существующем в спискеgetButtons(). Единственное отличие от использования HBox заключается в том, что кнопки выравниваются по правому краю.См. также:
-
-
Подробное описание конструкторов
-
ButtonBar
public ButtonBar()
Создаёт экземпляр ButtonBar по умолчанию с использованием свойств по умолчанию для операционной системы пользователя.
-
ButtonBar
public ButtonBar(String buttonOrder)
Создаёт ButtonBar с заданным порядком кнопок (см.buttonOrderProperty()для получения дополнительной информации).Параметры:
buttonOrder- Порядок кнопок, используемый в этом экземпляре ButtonBar.
-
-
Подробное описание методов
-
setButtonData
public static void setButtonData(Node button, ButtonBar.ButtonData buttonData)Устанавливает заданные ButtonData на заданную кнопку. Если эта кнопка впоследствии будет размещена вButtonBar, она будет размещена в правильном положении относительно всех других кнопок на панели.Параметры:
button- Кнопка, для которой задаётся значениеButtonBar.ButtonData.
-
getButtonData
public static ButtonBar.ButtonData getButtonData(Node button)
Возвращает ранее установленное свойство ButtonData для данной кнопки. Если оно никогда не устанавливалось, метод вернёт null.Параметры:
button- Кнопка, для которой возвращается ранее установленное значение ButtonData.
-
setButtonUniformSize
public static void setButtonUniformSize(Node button, boolean uniformSize)По умолчанию все кнопки в ButtonBar имеют одинаковый размер, т.е. все кнопки занимают ширину самой широкой кнопки. Можно отключить это на уровне отдельных кнопок, вызвав метод setButtonUniformSize с логическим значением false.Если кнопка исключается из вычисления одинакового размера, она исключается как из изменения размера от предпочтительного, так и из процесса измерения, поэтому её размер не повлияет на максимальный размер, рассчитанный для всех кнопок в ButtonBar.
Параметры:
button- Кнопка, которая включается/исключается из вычисления одинакового размера.
-
isButtonUniformSize
public static boolean isButtonUniformSize(Node button)
Возвращает значение, указывающее, участвует ли данный узел в вычислениях одинакового размера. По умолчанию все узлы, которые не отказались от участия (черезsetButtonUniformSize(Node, boolean)), вернут здесь true.
-
createDefaultSkin
protected Skin<?> createDefaultSkin()
Создаёт новый экземпляр стандартной темы для этого элемента управления. Вызывается для создания темы элемента управления, если тема не задана через CSS-fx-skinили явно установлена в подклассе сsetSkin(...).Переопределяет:
createDefaultSkinв классеControlВозвращает:
новый экземпляр стандартной темы для этого элемента управления. Если null, то у элемента управления не будет темы, если её не предоставляет css.
-
getButtons
public final ObservableList<Node> getButtons()
Размещение кнопок в этом ObservableList указывает ButtonBar на размещение кнопок относительно друг друга на основе их заданныхButtonBar.ButtonData. Чтобы установить ButtonData для кнопки, просто вызовитеsetButtonData(Node, ButtonData), передав соответствующее значение ButtonData.Возвращает:
Список, содержащий все кнопки, которые в данный момент находятся на панели кнопок, и позволяющий добавлять или удалять дополнительные кнопки.
-
buttonOrderProperty
public final StringProperty buttonOrderProperty()
Порядок стандартных кнопок в стандартной панели кнопок. Одна буква на значение перечисленияButtonBar.ButtonData. Также доступны стандартные порядки кнопок для операционных систем:BUTTON_ORDER_WINDOWS,BUTTON_ORDER_MAC_OSиBUTTON_ORDER_LINUX.См. также:
-
setButtonOrder
public final void setButtonOrder(String buttonOrder)
Устанавливаетbutton orderПараметры:
buttonOrder- Текущий порядок кнопок, который по умолчанию будет соответствовать порядку кнопок для текущей операционной системы.
-
getButtonOrder
public final String getButtonOrder()
Возвращает текущийbutton order.Возвращает:
Текущий
button order.
-
buttonMinWidthProperty
public final DoubleProperty buttonMinWidthProperty()
Устанавливает минимальную ширину всех кнопок, размещённых на этой панели кнопок.См. также:
-
setButtonMinWidth
public final void setButtonMinWidth(double value)
Устанавливает минимальную ширину всех кнопок, размещённых на этой панели кнопок.
-
getButtonMinWidth
public final double getButtonMinWidth()
Возвращает минимальную ширину всех кнопок, размещённых на этой панели кнопок.
-
© 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.