Spec-Zone.ru › OpenJavaFX 17

Класс CheckBoxTreeCell<T>

java.lang.Object
javafx.scene.Node
javafx.scene.Parent
javafx.scene.layout.Region
javafx.scene.control.Control
javafx.scene.control.Labeled
javafx.scene.control.Cell<T>
javafx.scene.control.IndexedCell<T>
javafx.scene.control.TreeCell<T>
javafx.scene.control.cell.CheckBoxTreeCell<T>
Type Parameters:
T - Тип элементов, содержащихся в экземплярах TreeItem дерева TreeView.
All Implemented Interfaces:
Styleable, EventTarget, Skinnable
public class CheckBoxTreeCell<T>
extends TreeCell<T>
Класс, содержащий реализацию TreeCell, который отображает узел CheckBox внутри ячейки, а также поддержку общих взаимодействий (подробно описано ниже).

Для упрощения создания TreeView с CheckBox предоставляется вспомогательный класс CheckBoxTreeItem. Сильно рекомендуется использовать этот класс, а не стандартный TreeItem класс, при построении структуры дерева TreeView. Обратитесь к документации API CheckBoxTreeItem для примера по комбинированию этих двух классов.

При использовании в TreeView ячейка CheckBoxCell отображается с CheckBox справа от узла раскрытия (т.е. стрелка). Элемент, хранящийся в TreeItem.getValue(), будет обработан StringConverter, и этот текст займет всё оставшееся горизонтальное пространство. Кроме того, используя CheckBoxTreeItem, TreeView автоматически обрабатывает такие ситуации:

  • Нажатие на CheckBox рядом с элементом, имеющим дочерние элементы, приведёт к выбору/снятию выбора всех дочерних элементов.
  • Нажатие на CheckBox рядом с элементом, имеющим родительский элемент, потенциально изменит состояние родителя. Например, если вы выберете единственного потомка, родительский элемент станет неопределённым (указывающим на частичный выбор потомков). Если вы выберете всех потомков, родительский элемент также будет выбран. Это рекурсивно, и все родительские узлы обновляются как ожидается.
Если использование CheckBoxTreeItem нежелательно, необходимо вызвать один из конструкторов, где предоставляется Callback, который может вернуть ObservableValue<Boolean> на основе экземпляра TreeItem. Это ObservableValue<Boolean> должно представлять логическое состояние заданного TreeItem.

Обратите внимание, что CheckBoxTreeCell отображает CheckBox "в режиме реального времени", что означает, что CheckBox всегда интерактивен и может быть изменён пользователем напрямую. Это означает, что нет необходимости, чтобы ячейка входила в режим редактирования editing state (обычно, двойным щелчком мыши по ячейке). Побочным эффектом этого является то, что обычные обратные вызовы редактирования (например, on edit commit) не будут вызваны. Если вы хотите получать уведомления о изменениях, рекомендуется напрямую наблюдать за логическими свойствами, которые изменяются CheckBox.

Since:
JavaFX 2.2

Краткое описание свойств

Свойства
Тип Свойство Описание
ObjectProperty<StringConverter<TreeItem<T>>> converter
Свойство StringConverter.
ObjectProperty<Callback<TreeItem<T>,​ObservableValue<Boolean>>> selectedStateCallback
Свойство, представляющее Callback, привязанное к CheckBox, отображаемому на экране.

Свойства, объявленные в классе javafx.scene.control.TreeCell

disclosureNode, treeItem, treeView

Свойства, объявленные в классе javafx.scene.control.IndexedCell

index

Свойства, объявленные в классе javafx.scene.control.Cell

editable, editing, empty, item, selected

Свойства, объявленные в классе javafx.scene.control.Labeled

alignment, contentDisplay, ellipsisString, font, graphic, graphicTextGap, labelPadding, lineSpacing, mnemonicParsing, textAlignment, textFill, textOverrun, text, underline, wrapText

Свойства, объявленные в классе 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

Краткое описание полей

Поля, объявленные в классе javafx.scene.layout.Region

USE_COMPUTED_SIZE, USE_PREF_SIZE

Поля, объявленные в классе javafx.scene.Node

BASELINE_OFFSET_SAME_AS_HEIGHT

Краткое описание конструкторов

Конструкторы
Конструктор Описание
CheckBoxTreeCell()
Создаёт стандартный CheckBoxTreeCell, предполагая, что TreeView построен с использованием экземпляров CheckBoxTreeItem, а не стандартных TreeItem.
CheckBoxTreeCell​(Callback<TreeItem<T>,​ObservableValue<Boolean>> getSelectedProperty)
Создаёт CheckBoxTreeCell для использования в элементе управления TreeView через фабрику ячеек.
CheckBoxTreeCell​(Callback<TreeItem<T>,​ObservableValue<Boolean>> getSelectedProperty, StringConverter<TreeItem<T>> converter)
Создаёт CheckBoxTreeCell для использования в элементе управления TreeView через фабрику ячеек.

Краткое описание методов

Модификатор и тип Метод Описание
ObjectProperty<StringConverter<TreeItem<T>>> converterProperty()
Свойство StringConverter.
static <T> Callback<TreeView<T>,​TreeCell<T>> forTreeView()
Создаёт фабрику ячеек для использования в элементе управления TreeView, хотя при использовании в TreeView существует важное предположение: эта фабрика ячеек предполагает, что корень TreeView и все дочерние элементы являются экземплярами CheckBoxTreeItem, а не стандартного класса TreeItem.
static <T> Callback<TreeView<T>,​TreeCell<T>> forTreeView​(Callback<TreeItem<T>,​ObservableValue<Boolean>> getSelectedProperty)
Создаёт фабрику ячеек для использования в элементе управления TreeView.
static <T> Callback<TreeView<T>,​TreeCell<T>> forTreeView​(Callback<TreeItem<T>,​ObservableValue<Boolean>> getSelectedProperty, StringConverter<TreeItem<T>> converter)
Создаёт фабрику ячеек для использования в элементе управления TreeView.
StringConverter<TreeItem<T>> getConverter()
Возвращает StringConverter, используемое в этой ячейке.
Callback<TreeItem<T>,​ObservableValue<Boolean>> getSelectedStateCallback()
Возвращает Callback, привязанный к отображаемому элементу CheckBox.
ObjectProperty<Callback<TreeItem<T>,​ObservableValue<Boolean>>> selectedStateCallbackProperty()
Свойство, представляющее Callback, привязанный к отображаемому элементу CheckBox.
void setConverter​(StringConverter<TreeItem<T>> value)
Устанавливает StringConverter для использования в этой ячейке.
void setSelectedStateCallback​(Callback<TreeItem<T>,​ObservableValue<Boolean>> value)
Устанавливает Callback, привязанный к отображаемому элементу CheckBox.
void updateItem​(T item, boolean empty)
Метод updateItem не должен вызываться разработчиками, но это лучший метод для переопределения разработчиками, чтобы позволить им настроить визуальные элементы ячейки.

Методы, объявленные в классе javafx.scene.control.TreeCell

disclosureNodeProperty, getDisclosureNode, getTreeItem, getTreeView, setDisclosureNode, treeItemProperty, treeViewProperty, updateTreeItem, updateTreeView

Методы, объявленные в классе javafx.scene.control.IndexedCell

getIndex, indexProperty, updateIndex

Методы, объявленные в классе javafx.scene.control.Cell

cancelEdit, commitEdit, editableProperty, editingProperty, emptyProperty, getInitialFocusTraversable, getItem, isEditable, isEditing, isEmpty, isItemChanged, isSelected, itemProperty, selectedProperty, setEditable, setItem, startEdit, updateSelected

Методы, объявленные в классе javafx.scene.control.Labeled

alignmentProperty, contentDisplayProperty, ellipsisStringProperty, fontProperty, getAlignment, getClassCssMetaData, getContentBias, getContentDisplay, getControlCssMetaData, getEllipsisString, getFont, getGraphic, getGraphicTextGap, getInitialAlignment, getLabelPadding, getLineSpacing, getText, getTextAlignment, getTextFill, getTextOverrun, graphicProperty, graphicTextGapProperty, isMnemonicParsing, isUnderline, isWrapText, labelPaddingProperty, lineSpacingProperty, mnemonicParsingProperty, setAlignment, setContentDisplay, setEllipsisString, setFont, setGraphic, setGraphicTextGap, setLineSpacing, setMnemonicParsing, setText, setTextAlignment, setTextFill, setTextOverrun, setUnderline, setWrapText, textAlignmentProperty, textFillProperty, textOverrunProperty, textProperty, underlineProperty, wrapTextProperty

Методы, объявленные в классе javafx.scene.control.Control

computeMaxHeight, computeMaxWidth, computeMinHeight, computeMinWidth, contextMenuProperty, createDefaultSkin, getContextMenu, 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, 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

Подробности свойства

converter

public final ObjectProperty<StringConverter<TreeItem<T>>> converterProperty
Свойство StringConverter.
См. также:
getConverter(), setConverter(StringConverter)

selectedStateCallback

public final ObjectProperty<Callback<TreeItem<T>,ObservableValue<Boolean>>> selectedStateCallbackProperty
Свойство, представляющее Callback, привязанное к элементу CheckBox, отображаемому на экране.
См. также:
getSelectedStateCallback(), setSelectedStateCallback(Callback)

Подробности конструктора

CheckBoxTreeCell

public CheckBoxTreeCell()
Создает стандартный CheckBoxTreeCell, предполагающий, что TreeView построен с использованием CheckBoxTreeItem, а не стандартных TreeItem. При использовании CheckBoxTreeItem, он будет внутренне управлять выбранным и неопределённым состоянием каждого элемента в дереве.

CheckBoxTreeCell

public CheckBoxTreeCell(Callback<TreeItem<T>,​ObservableValue<Boolean>> getSelectedProperty)
Создаёт CheckBoxTreeCell для использования в элементе управления TreeView через фабрику ячеек. В отличие от CheckBoxTreeCell(), этот метод не предполагает, что все элементы TreeItem в TreeView являются CheckBoxTreeItem.

Для вызова этого метода необходимо предоставить Callback, который, получив объект типа TreeItem<T>, вернёт ObservableValue<Boolean>, представляющий, выбран ли данный элемент. Это ObservableValue<Boolean> будет привязано двунаправленно (т. е. CheckBox в ячейке установит/сбросит это свойство на основе пользовательских взаимодействий, и CheckBox отразит состояние ObservableValue<Boolean>, если оно изменится внешним образом).

Если элементы не являются CheckBoxTreeItem, разработчик несёт ответственность за обновление состояния родительских и дочерних TreeItem. Это означает, что, получив TreeItem, этот класс просто переключает предоставленное ObservableValue<Boolean>, и не более. Конечно, эту функциональность можно реализовать внешним образом, добавив наблюдателей к ObservableValue<Boolean>, и переключив состояние других свойств по мере необходимости.

Параметры:
getSelectedProperty - Callback, возвращающий ObservableValue<Boolean>, представляющий, выбран ли данный элемент.

CheckBoxTreeCell

public CheckBoxTreeCell(Callback<TreeItem<T>,​ObservableValue<Boolean>> getSelectedProperty, StringConverter<TreeItem<T>> converter)
Создаёт CheckBoxTreeCell для использования в элементе управления TreeView через фабрику ячеек. В отличие от CheckBoxTreeCell(), этот метод не предполагает, что все элементы TreeItem в TreeView являются CheckBoxTreeItem.

Для вызова этого метода необходимо предоставить Callback, который, получив объект типа TreeItem<T>, вернёт ObservableValue<Boolean>, представляющий, выбран ли данный элемент. Это ObservableValue<Boolean> будет привязано двунаправленно (т. е. CheckBox в ячейке установит/сбросит это свойство на основе пользовательских взаимодействий, и CheckBox отразит состояние ObservableValue<Boolean>, если оно изменится внешним образом).

Если элементы не являются CheckBoxTreeItem, разработчик несёт ответственность за обновление состояния родительских и дочерних TreeItem. Это означает, что, получив TreeItem, этот класс просто переключает предоставленное ObservableValue<Boolean>, и не более. Конечно, эту функциональность можно реализовать внешним образом, добавив наблюдателей к ObservableValue<Boolean>, и переключив состояние других свойств по мере необходимости.

Параметры:
getSelectedProperty - Callback, возвращающий ObservableValue<Boolean>, представляющий, выбран ли данный элемент.
converter - StringConverter, который, получив объект типа TreeItem<T>, вернёт строку, которая может использоваться для визуального представления объекта.

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

forTreeView

public static <T> Callback<TreeView<T>,TreeCell<T>> forTreeView()
Создаёт фабрику ячеек для использования в элементе управления TreeView, хотя существует важное предположение при использовании в TreeView: эта фабрика ячеек предполагает, что корень TreeView и все дочерние элементы являются экземплярами CheckBoxTreeItem, а не стандартного класса TreeItem, используемого обычно.

При использовании в TreeView CheckBoxCell отображается с CheckBox справа от 'узла раскрытия' (т. е. стрелки). Элемент, хранящийся в TreeItem.getValue(), затем будет обработан StringConverter, и этот текст займёт всё оставшееся горизонтальное пространство. Кроме того, при использовании CheckBoxTreeItem, TreeView автоматически обрабатывает ситуации, такие как:

  • Нажатие на CheckBox рядом с элементом, имеющим дочерние элементы, приведёт к тому, что все дочерние элементы также станут выбранными/невыбранными.
  • Нажатие на CheckBox рядом с элементом, имеющим родительский элемент, возможно, переключит состояние родительского элемента. Например, если вы выберете единственный дочерний элемент, родительский элемент станет неопределённым (что указывает на частичный выбор дочерних элементов). Если вы продолжите выбирать все дочерние элементы, родительский элемент также будет выбран. Это рекурсивно, и все родительские узлы обновляются как ожидается.

К сожалению, из-за ограничений Java, при использовании этого метода необходимо явно выполнить приведение типов. Например:

 
 final TreeView<String> treeView = new TreeView<String>();
 treeView.setCellFactory(CheckBoxCell.<String>forTreeView());
Параметры типа:
T - Тип элементов, содержащихся в экземплярах CheckBoxTreeItem.
Возвращает:
Callback, который вернёт TreeCell, способный работать с типом элемента, содержащегося в корне TreeView и всех его дочерних элементов (рекурсивно).

forTreeView

public static <T> Callback<TreeView<T>,TreeCell<T>> forTreeView​(Callback<TreeItem<T>,​ObservableValue<Boolean>> getSelectedProperty)
Создаёт фабрику ячеек для использования в элементе управления TreeView. В отличие от forTreeView(), этот метод не предполагает, что все элементы TreeItem в TreeView являются CheckBoxTreeItem.

При использовании в TreeView CheckBoxCell отображается с CheckBox справа от 'узла раскрытия' (т. е. стрелки). Элемент, хранящийся в TreeItem.getValue(), затем будет обработан StringConverter, и этот текст займёт всё оставшееся горизонтальное пространство.

В отличие от forTreeView(), эта фабрика ячеек не обрабатывает обновление состояния родительских или дочерних TreeItem - она просто переключает предоставленное ObservableValue<Boolean>, и не более. Конечно, эту функциональность можно реализовать внешним образом, добавив наблюдателей к ObservableValue<Boolean>, и переключив состояние других свойств по мере необходимости.

Параметры типа:
T - Тип элементов, содержащихся в экземплярах TreeItem.
Параметры:
getSelectedProperty - Callback, возвращающий ObservableValue<Boolean>, представляющий, выбран ли данный элемент. Это ObservableValue<Boolean> будет привязано двунаправленно (т. е. CheckBox в ячейке установит/сбросит это свойство на основе пользовательских взаимодействий, и CheckBox отразит состояние ObservableValue<Boolean>, если оно изменится внешним образом).
Возвращает:
Callback, который вернёт TreeCell, способный работать с типом элемента, содержащегося в корне TreeView и всех его дочерних элементов (рекурсивно).

дляTreeView

public static <T> Callback<TreeView<T>,TreeCell<T>> forTreeView​(Callback<TreeItem<T>,​ObservableValue<Boolean>> getSelectedProperty, StringConverter<TreeItem<T>> converter)
Создаёт фабрику ячеек для использования в элементе управления TreeView. В отличие от forTreeView(), этот метод не предполагает, что все экземпляры TreeItem в TreeView являются CheckBoxTreeItem.

При использовании в TreeView CheckBoxCell отображается с CheckBox справа от «узла раскрытия» (т.е. стрелки). Элемент, хранящийся в TreeItem.getValue(), затем будет обработан StringConverter, и этот текст займёт всё оставшееся горизонтальное пространство.

В отличие от forTreeView(), эта фабрика ячеек не обрабатывает обновление состояния родительских или дочерних TreeItem — она просто переключает предоставленное значение ObservableValue<Boolean>, и ничего больше. Конечно, эту функциональность можно реализовать внешне, добавив наблюдателей к ObservableValue<Boolean> и переключив состояние других свойств по мере необходимости.

Type Parameters:
T - Тип элементов, содержащихся в TreeItem экземплярах.
Parameters:
getSelectedProperty - Callback, который, получив объект типа TreeItem<T>, вернёт значение ObservableValue<Boolean>, представляющее, выбран ли данный элемент или нет. Это ObservableValue<Boolean> будет связано двунаправленно (что означает, что CheckBox в ячейке будет устанавливать/снимать это свойство на основе взаимодействия пользователя, а CheckBox будет отражать состояние ObservableValue<Boolean>, если оно изменится внешним образом).
converter - StringConverter, который, получив объект типа TreeItem<T>, вернёт строку, которая может использоваться для визуального представления объекта. По умолчанию в forTreeView(Callback) просто вызывается .toString() для всех ненулевых элементов (и возвращается пустая строка в тех случаях, когда заданный элемент равен null).
Returns:
A Callback, который вернёт TreeCell, способный работать с типом элемента, содержащегося в корне TreeView и всех его дочерних элементах (рекурсивно).

свойствоПреобразователя

public final ObjectProperty<StringConverter<TreeItem<T>>> converterProperty()
Свойство StringConverter.
См. также:
getConverter(), setConverter(StringConverter)

установитьПреобразователь

public final void setConverter(StringConverter<TreeItem<T>> value)
Устанавливает StringConverter для использования в этой ячейке.
Parameters:
value - StringConverter для использования в этой ячейке

получитьПреобразователь

public final StringConverter<TreeItem<T>> getConverter()
Возвращает StringConverter, используемый в этой ячейке.
Returns:
StringConverter, используемый в этой ячейке

свойствоОбратногоВызоваСостоянияВыбора

public final ObjectProperty<Callback<TreeItem<T>,ObservableValue<Boolean>>> selectedStateCallbackProperty()
Свойство, представляющее Callback, к которому привязана отображаемая на экране CheckBox.
См. также:
getSelectedStateCallback(), setSelectedStateCallback(Callback)

установитьОбратныйВызовСостоянияВыбора

public final void setSelectedStateCallback(Callback<TreeItem<T>,​ObservableValue<Boolean>> value)
Устанавливает Callback, к которому привязана отображаемая на экране CheckBox.
Parameters:
value - Callback, к которому привязана отображаемая на экране CheckBox

получитьОбратныйВызовСостоянияВыбора

public final Callback<TreeItem<T>,ObservableValue<Boolean>> getSelectedStateCallback()
Возвращает Callback, к которому привязана отображаемая на экране CheckBox.
Returns:
Callback, к которому привязана отображаемая на экране CheckBox

обновитьЭлемент

public void updateItem(T item, boolean empty)
Метод updateItem не должен вызываться разработчиками, но это лучший метод для переопределения разработчиками, чтобы позволить им настроить визуальные элементы ячейки. Для ясности, разработчики никогда не должны вызывать этот метод в своём коде (они должны предоставить управлению пользовательского интерфейса, например, элементу управления ListView, вызвать этот метод). Однако цель метода updateItem заключается в том, чтобы разработчики при указании пользовательских фабрик ячеек (опять же, как в ListView cell factory) могли переопределить метод updateItem, чтобы позволить полную настройку ячейки.

Очень важно, чтобы подклассы Cell должным образом переопределяли метод updateItem, так как отказ от этого приведёт к проблемам, таким как пустые ячейки или ячейки с неожиданным содержимым, появляющимся в них. Вот пример того, как правильно переопределить метод updateItem:

 protected void updateItem(T item, boolean empty) {
     super.updateItem(item, empty);

     if (empty || item == null) {
         setText(null);
         setGraphic(null);
     } else {
         setText(item.toString());
     }
 }
 

Обратите внимание на два важных момента в этом примере кода:

  1. Мы вызываем метод super.updateItem(T, boolean). Если этого не сделать, свойства item и empty не будут правильно установлены, и у вас, скорее всего, возникнут графические проблемы.
  2. Мы проверяем условие empty и, если оно верно, устанавливаем свойства text и graphic в null. Если этого не сделать, почти гарантировано, что конечные пользователи увидят графические артефакты в ячейках неожиданно.
Parameters:
item - Новый элемент для ячейки.
empty - является ли эта ячейка данными из списка. Если она пуста, то она не представляет какие-либо данные домена, а используется для отображения пустой строки.

© 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