Класс ButtonBar
- Все реализованные интерфейсы:
-
Styleable,EventTarget,Skinnable
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:
Примеры кода
Создание и использование 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
- См. также:
Сводка свойств
| Тип | Свойство | Описание |
|---|---|---|
final DoubleProperty |
buttonMinWidth |
Устанавливает минимальную ширину всех кнопок, размещённых в этой панели кнопок. |
final StringProperty |
buttonOrder |
Порядок расположения стандартных кнопок на панели кнопок. |
Свойства, объявленные в классе 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, focusVisible, focusWithin, 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
Сводка вложенных классов
| Модификатор и тип | Класс | Описание |
|---|---|---|
static enum |
ButtonBar.ButtonData |
Перечисление всех доступных аннотаций данных кнопок. |
Сводка полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final String |
BUTTON_ORDER_LINUX |
Стандартный порядок кнопок в Linux (в частности, GNOME). |
static final String |
BUTTON_ORDER_MAC_OS |
Стандартный порядок кнопок в Mac OS. |
static final String |
BUTTON_ORDER_NONE |
Строка порядка кнопок, указывающая, что порядок кнопок отсутствует. |
static final String |
BUTTON_ORDER_WINDOWS |
Стандартный порядок кнопок в Windows. |
Поля, объявленные в классе javafx.scene.layout.Region
USE_COMPUTED_SIZE, USE_PREF_SIZE
Поля, объявленные в классе javafx.scene.Node
BASELINE_OFFSET_SAME_AS_HEIGHT
Сводка конструкторов
| Конструктор | Описание |
|---|---|
ButtonBar() |
Создаёт экземпляр ButtonBar по умолчанию, используя свойства по умолчанию для операционной системы пользователя. |
ButtonBar |
Создаёт ButtonBar с заданным порядком кнопок (см. buttonOrderProperty() для получения дополнительной информации). |
Сводка методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
final DoubleProperty |
buttonMinWidthProperty() |
Устанавливает минимальную ширину всех кнопок, размещённых в этой панели кнопок. |
final StringProperty |
buttonOrderProperty() |
Порядок расположения стандартных кнопок на панели кнопок. |
static ButtonBar.ButtonData |
getButtonData |
Возвращает ранее установленное свойство ButtonData для данной кнопки. |
final double |
getButtonMinWidth() |
Возвращает минимальную ширину всех кнопок, размещённых в этой панели кнопок. |
final String |
getButtonOrder() |
Возвращает текущий button order. |
final ObservableList<Node> |
getButtons() |
Размещение кнопок в этом ObservableList указывает ButtonBar на позиционирование их относительно друг друга на основе их заданного ButtonBar.ButtonData. |
protected Boolean |
getInitialFocusTraversable() |
Возвращает начальное состояние фокусируемого перехода данного элемента управления, используемое движком JavaFX CSS для корректной установки его начального значения. |
static boolean |
isButtonUniformSize |
Возвращает, является ли данный узел частью расчётов унифицированного размера или нет. |
static void |
setButtonData |
Устанавливает заданное ButtonData для данной кнопки. |
final void |
setButtonMinWidth |
Устанавливает минимальную ширину всех кнопок, размещённых в этой панели кнопок. |
final void |
setButtonOrder |
Устанавливает button order
|
static void |
setButtonUniformSize |
По умолчанию все кнопки имеют унифицированный размер в ButtonBar, означающий, что все кнопки занимают ширину самой широкой кнопки. |
Методы, объявленные в классе javafx.scene.control.Control
computeMaxHeight, computeMaxWidth, computeMinHeight, computeMinWidth, contextMenuProperty, createDefaultSkin, getClassCssMetaData, getContextMenu, getControlCssMetaData, getCssMetaData, getSkin, getTooltip, isResizable, setContextMenu, setSkin, setTooltip, skinProperty, tooltipProperty
Методы, объявленные в классе javafx.scene.layout.Region
backgroundProperty, borderProperty, cacheShapeProperty, centerShapeProperty, computePrefHeight, computePrefWidth, 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, snapPositionX, snapPositionY, snapSize, snapSizeX, snapSizeY, snapSpace, snapSpaceX, snapSpaceY, snapToPixelProperty, widthProperty
Методы, объявленные в классе javafx.scene.Parent
getBaselineOffset, getChildren, 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, focusVisibleProperty, focusWithinProperty, getAccessibleHelp, getAccessibleRole, getAccessibleRoleDescription, getAccessibleText, getBlendMode, getBoundsInLocal, getBoundsInParent, getCacheHint, getClip, getContentBias, getCursor, getDepthTest, getEffect, getEffectiveNodeOrientation, getEventDispatcher, getId, getInitialCursor, 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, getViewOrder, hasProperties, hoverProperty, idProperty, inputMethodRequestsProperty, intersects, intersects, isCache, isDisable, isDisabled, isFocused, isFocusTraversable, isFocusVisible, isFocusWithin, 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
Подробности свойства
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
- См. также:
BUTTON_ORDER_MAC_OS
public static final String BUTTON_ORDER_MAC_OS
- См. также:
BUTTON_ORDER_LINUX
public static final String BUTTON_ORDER_LINUX
- См. также:
BUTTON_ORDER_NONE
public static final String BUTTON_ORDER_NONE
getButtons(). Единственное отличие в расположении по сравнению с использованием HBox заключается в том, что кнопки выравниваются по правому краю.- См. также:
Подробности конструктора
ButtonBar
public ButtonBar()
ButtonBar
public ButtonBar(String buttonOrder)
buttonOrderProperty()).- Параметры:
-
buttonOrder- Порядок кнопок для использования в этом экземпляре панели кнопок.
Подробности метода
setButtonData
public static void setButtonData(Node button, ButtonBar.ButtonData buttonData)
ButtonBar, она будет размещена в правильном положении относительно всех других кнопок в панели.- Параметры:
-
button- Кнопка для аннотации заданным значениемButtonBar.ButtonData. -
buttonData- ButtonData, обозначающая кнопку.
getButtonData
public static ButtonBar.ButtonData getButtonData(Node button)
- Параметры:
-
button- Кнопка, для которой необходимо вернуть ранее установленное свойство ButtonData. - Возвращает:
- ранее установленное свойство ButtonData для данной кнопки
setButtonUniformSize
public static void setButtonUniformSize(Node button, boolean uniformSize)
Если кнопка исключена из вычисления одинакового размера, она также исключается из изменения размера в сторону от предпочтительного размера, а также из процесса измерения, поэтому её размер не повлияет на вычисление максимального размера всех кнопок в ButtonBar.
- Параметры:
-
button- Кнопка, для которой необходимо включить/исключить одинаковый размер. -
uniformSize- Булево значение true для принудительного вычисления одинакового размера для кнопки, false для исключения кнопки из вычисления одинакового размера.
isButtonUniformSize
public static boolean isButtonUniformSize(Node button)
setButtonUniformSize(Node, boolean)), возвращают true здесь.- Параметры:
-
button- кнопка - Возвращает:
- true, если кнопка участвует в вычислении одинакового размера
getButtons
public final ObservableList<Node> getButtons()
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)
- Параметры:
-
value- значение минимальной ширины
getButtonMinWidth
public final double getButtonMinWidth()
- Возвращает:
- значение минимальной ширины
getInitialFocusTraversable
protected Boolean getInitialFocusTraversable()
- Переопределяет:
-
getInitialFocusTraversableв классеControl - Возвращает:
- начальное состояние фокусировки данного элемента управления
- С:
- 9
© 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.