Spec-Zone.ru › OpenJavaFX 17

Класс ButtonBar

java.lang.Object
javafx.scene.Node
javafx.scene.Parent
javafx.scene.layout.Region
javafx.scene.control.Control
javafx.scene.control.ButtonBar
Все реализованные интерфейсы:
Styleable, EventTarget, Skinnable
public class ButtonBar
extends Control
ButtonBar по сути представляет собой HBox с дополнительной функциональностью для размещения кнопок в соответствии с особенностями конкретной операционной системы. Другими словами, любой элемент Node может быть помечен (с помощью метода 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 таковы:

Таблица макета ButtonBar
Операционная система Порядок кнопок
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.scene.control.Skinnable

getSkin, setSkin

Методы, объявленные в интерфейсе 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
Стандартный порядок кнопок в 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 - Порядок кнопок для использования в этом экземпляре панели кнопок.

Подробности метода

setButtonData

public static void setButtonData(Node button, ButtonBar.ButtonData buttonData)
Устанавливает заданное значение ButtonData для данной кнопки. Если эта кнопка впоследствии размещается в ButtonBar, она будет размещена в правильном положении по отношению ко всем другим кнопкам в панели.
Параметры:
button - Кнопка, которая должна быть помечена заданным значением ButtonBar.ButtonData.
buttonData - Значение ButtonData, которое должно быть назначено кнопке.

getButtonData

public static ButtonBar.ButtonData getButtonData(Node button)
Возвращает ранее установленное свойство ButtonData для данной кнопки. Если оно никогда не устанавливалось, этот метод вернет null.
Параметры:
button - Кнопка, для которой необходимо вернуть ранее заданное свойство ButtonData.
Возвращает:
ранее установленное свойство ButtonData для данной кнопки

setButtonUniformSize

public static void setButtonUniformSize(Node button, boolean uniformSize)
По умолчанию все кнопки в ButtonBar имеют одинаковый размер, то есть все кнопки занимают ширину самой широкой кнопки. Можно отказаться от этого на основе каждой кнопки, вызвав метод setButtonUniformSize с boolean значением false.

Если кнопка исключена из одинакового размера, она не будет пересчитываться в размер от предпочтительного размера, а также исключается из процесса измерения, поэтому ее размер не повлияет на максимальный размер, рассчитанный для всех кнопок в 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()
Размещение кнопок в этом ObservableList укажет ButtonBar на расположение их друг относительно друга на основе их указанного значения 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()
Возвращает начальное состояние перемещения фокуса для этого элемента управления, для использования движком JavaFX CSS для корректной установки его начального значения. Этот метод переопределен, поскольку по умолчанию элементы управления пользовательского интерфейса имеют перемещение фокуса установленное в true, но это не подходит для этого элемента управления.
Переопределяет:
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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API