Класс ButtonBar
- Все реализованные интерфейсы:
-
Styleable,EventTarget,Skinnable
public class ButtonBar
extends Control HBox с дополнительной функциональностью для размещения кнопок в соответствии с особенностями конкретной операционной системы. Другими словами, любой элемент Node может быть помечен (с помощью метода 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
- См. также:
ButtonBar.ButtonData
Краткое описание свойств
| Тип | Свойство | Описание |
|---|---|---|
DoubleProperty | buttonMinWidth | Устанавливает минимальную ширину всех кнопок, размещенных в этой панели кнопок. |
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, 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 class | ButtonBar.ButtonData | Перечисление всех доступных аннотаций данных кнопок. |
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static String | BUTTON_ORDER_LINUX | Порядок расположения кнопок по умолчанию в Linux (конкретно, GNOME). |
static String | BUTTON_ORDER_MAC_OS | Порядок расположения кнопок по умолчанию в Mac OS. |
static String | BUTTON_ORDER_NONE | Строка порядка расположения кнопок, указывающая, что порядок расположения кнопок отсутствует. |
static 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(String buttonOrder) | Создает ButtonBar с заданным порядком кнопок (подробнее см. buttonOrderProperty()). |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
DoubleProperty | buttonMinWidthProperty() | Устанавливает минимальную ширину всех кнопок, размещенных в этой панели кнопок. |
StringProperty | buttonOrderProperty() | Порядок расположения типичных кнопок в стандартной панели кнопок. |
static ButtonBar.ButtonData | getButtonData(Node button) | Возвращает ранее заданное свойство ButtonData для данной кнопки. |
double | getButtonMinWidth() | Возвращает минимальную ширину всех кнопок, размещенных в этой панели кнопок. |
String | getButtonOrder() | Возвращает текущее значение button order. |
ObservableList<Node> | getButtons() | Размещение кнопок внутри этого ObservableList укажет ButtonBar на их расположение относительно друг друга на основе заданного ButtonBar.ButtonData. |
protected Boolean | getInitialFocusTraversable() | Возвращает начальное состояние фокусируемости данного элемента управления, используемое движком JavaFX CSS для корректной установки его начального значения. |
static boolean | isButtonUniformSize(Node button) | Возвращает, является ли данный узел частью расчетов унифицированного размера или нет. |
static void | setButtonData(Node button,
ButtonBar.ButtonData buttonData) | Устанавливает заданное ButtonData для данной кнопки. |
void | setButtonMinWidth(double value) | Устанавливает минимальную ширину всех кнопок, размещенных в этой панели кнопок. |
void | setButtonOrder(String buttonOrder) | Устанавливает button order
|
static void | setButtonUniformSize(Node button,
boolean uniformSize) | По умолчанию все кнопки в ButtonBar имеют унифицированный размер, то есть все кнопки занимают ширину самой широкой кнопки. |
Методы, объявленные в классе javafx.scene.control.Control
computeMaxHeight, computeMaxWidth, computeMinHeight, computeMinWidth, contextMenuProperty, createDefaultSkin, getClassCssMetaData, getContextMenu, getControlCssMetaData, getCssMetaData, getTooltip, isResizable, setContextMenu, 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, 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, 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
Подробности свойства
Порядок кнопок
public final StringProperty buttonOrderProperty
ButtonBar.ButtonData. Также доступны стандартные порядки кнопок для операционных систем: BUTTON_ORDER_WINDOWS, BUTTON_ORDER_MAC_OS и BUTTON_ORDER_LINUX.- См. также:
-
getButtonOrder(),setButtonOrder(String)
Минимальная ширина кнопки
public final DoubleProperty buttonMinWidthProperty
- См. также:
-
getButtonMinWidth(),setButtonMinWidth(double)
Подробности поля
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- Boolean 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.- Возвращает:
- Список, содержащий все кнопки, которые в данный момент находятся в панели кнопок, и позволяющий добавлять или удалять дополнительные кнопки.
Свойство порядка кнопок
public final StringProperty buttonOrderProperty()
ButtonBar.ButtonData. Также доступны стандартные порядки кнопок для операционных систем: BUTTON_ORDER_WINDOWS, BUTTON_ORDER_MAC_OS и BUTTON_ORDER_LINUX.- См. также:
-
getButtonOrder(),setButtonOrder(String)
setButtonOrder
public final void setButtonOrder(String buttonOrder)
button order
- Параметры:
-
buttonOrder- Текущий порядок кнопок, который по умолчанию будет специфическим для операционной системы.
getButtonOrder
public final String getButtonOrder()
button order.- Возвращает:
- Текущее значение
button order.
Свойство минимальной ширины кнопки
public final DoubleProperty buttonMinWidthProperty()
- См. также:
-
getButtonMinWidth(),setButtonMinWidth(double)
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.