Класс ButtonBar
- Все реализованные интерфейсы:
-
Styleable,EventTarget,Skinnable
public class ButtonBar extends Control
HBox с дополнительными возможностями размещения кнопок в соответствии с операционной системой. Другими словами, любой узел может быть помечен (через метод setButtonData(Node, ButtonData)), размещён внутри ButtonBar (через список getButtons()), и затем будет размещён относительно всех других узлов в списке кнопок на основе их меток, а также общего button order, указанного для ButtonBar. Унифицированный размер кнопок
По умолчанию все кнопки имеют одинаковый размер в ButtonBar, что означает, что все кнопки занимают ширину самой широкой кнопки. Можно отказаться от этого для каждой кнопки, вызвав метод setButtonUniformSize(Node, boolean) со значением 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
- См. также:
Краткое описание вложенных классов
| Модификатор и тип | Класс | Описание |
|---|---|---|
static enum |
ButtonBar.ButtonData |
Перечисление всех доступных аннотаций данных для кнопок. |
Краткое описание свойств
| Тип | Свойство | Описание |
|---|---|---|
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 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 |
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, requestFocusTraversal, 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- Порядок кнопок для использования в этом экземпляре ButtonBar.
Подробности метода
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 - Возвращает:
- начальное состояние focus traversable для этого элемента управления
- С тех пор:
- 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.