Класс CheckBoxTreeCell<T>
- Параметры типа:
-
T- Тип элементов, содержащихся в экземплярах TreeItem дерева TreeView.
- Все реализуемые интерфейсы:
-
Styleable,EventTarget,Skinnable
public class CheckBoxTreeCell<T> extends TreeCell<T>
TreeCell, которая отображает узел CheckBox внутри ячейки, а также поддерживает общие взаимодействия (подробнее об этом чуть ниже). Для упрощения создания TreeView с CheckBoxes предоставляется вспомогательный класс 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.
- С момента:
- JavaFX 2.2
Краткое описание свойств
| Тип | Свойство | Описание |
|---|---|---|
final ObjectProperty<StringConverter<TreeItem<T>>> |
converter |
Свойство StringConverter. |
final ObjectProperty<Callback<TreeItem<T>, |
selectedStateCallback |
Свойство, представляющее Callback, к которому привязана метка выбора (CheckBox), отображаемая на экране. |
Свойства, объявленные в классе javafx.scene.control.TreeCell
disclosureNode, treeItem, treeView
Свойства, объявленные в классе javafx.scene.control.IndexedCell
index
Свойства, объявленные в классе 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, 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
Краткое описание полей
Поля, объявленные в классе javafx.scene.layout.Region
USE_COMPUTED_SIZE, USE_PREF_SIZE
Поля, объявленные в классе javafx.scene.Node
BASELINE_OFFSET_SAME_AS_HEIGHT
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
CheckBoxTreeCell() |
Создаёт по умолчанию CheckBoxTreeCell, предполагая, что TreeView построен с использованием экземпляров CheckBoxTreeItem, а не по умолчанию TreeItem. |
CheckBoxTreeCell |
Создаёт CheckBoxTreeCell для использования в элементе управления TreeView через фабрику ячеек. |
CheckBoxTreeCell |
Создаёт CheckBoxTreeCell для использования в элементе управления TreeView через фабрику ячеек. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
final ObjectProperty<StringConverter<TreeItem<T>>> |
converterProperty() |
Свойство StringConverter. |
static <T> Callback<TreeView<T>, |
forTreeView() |
Создаёт фабрику ячеек для использования в элементе управления TreeView, хотя при её использовании в TreeView есть важное предположение: эта фабрика ячеек предполагает, что корень TreeView и все дочерние элементы являются экземплярами CheckBoxTreeItem, а не по умолчанию TreeItem, который используется обычно. |
static <T> Callback<TreeView<T>, |
forTreeView |
Создаёт фабрику ячеек для использования в элементе управления TreeView. |
static <T> Callback<TreeView<T>, |
forTreeView |
Создаёт фабрику ячеек для использования в элементе управления TreeView. |
final StringConverter<TreeItem<T>> |
getConverter() |
Возвращает StringConverter, используемый в этой ячейке. |
final Callback<TreeItem<T>, |
getSelectedStateCallback() |
Возвращает Callback, к которому привязана метка выбора (CheckBox), отображаемая на экране. |
final ObjectProperty<Callback<TreeItem<T>, |
selectedStateCallbackProperty() |
Свойство, представляющее Callback, к которому привязана метка выбора (CheckBox), отображаемая на экране. |
final void |
setConverter |
Устанавливает StringConverter для использования в этой ячейке. |
final void |
setSelectedStateCallback |
Устанавливает Callback, к которому привязана метка выбора (CheckBox), отображаемая на экране. |
void |
updateItem |
Метод 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, 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, getCursor, getDepthTest, getEffect, getEffectiveNodeOrientation, getEventDispatcher, getId, getInitialCursor, getInputMethodRequests, getLayoutBounds, getLayoutX, getLayoutY, getLocalToParentTransform, getLocalToSceneTransform, getNodeOrientation, getOnContextMenuRequested, getOnDragDetected, getOnDragDone, getOnDragDropped, getOnDragEntered, getOnDragExited, getOnDragOver, getOnInputMethodTextChanged, getOnKeyPressed, getOnKeyReleased, getOnKeyTyped, getOnMouseClicked, getOnMouseDragEntered, getOnMouseDragExited, getOnMouseDragged, getOnMouseDragOver, getOnMouseDragReleased, getOnMouseEntered, getOnMouseExited, getOnMouseMoved, getOnMousePressed, getOnMouseReleased, getOnRotate, getOnRotationFinished, getOnRotationStarted, getOnScroll, getOnScrollFinished, getOnScrollStarted, getOnSwipeDown, getOnSwipeLeft, getOnSwipeRight, getOnSwipeUp, getOnTouchMoved, getOnTouchPressed, getOnTouchReleased, getOnTouchStationary, getOnZoom, getOnZoomFinished, getOnZoomStarted, getOpacity, getParent, getProperties, getPseudoClassStates, getRotate, getRotationAxis, getScaleX, getScaleY, getScaleZ, getScene, getStyle, getStyleableParent, getStyleClass, getTransforms, getTranslateX, getTranslateY, getTranslateZ, getTypeSelector, getUserData, getViewOrder, hasProperties, hoverProperty, idProperty, inputMethodRequestsProperty, intersects, intersects, isCache, isDisable, isDisabled, isFocused, isFocusTraversable, isFocusVisible, isFocusWithin, isHover, isManaged, isMouseTransparent, isPickOnBounds, isPressed, isVisible, layoutBoundsProperty, layoutXProperty, layoutYProperty, localToParent, localToParent, localToParent, localToParent, localToParent, localToParentTransformProperty, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToSceneTransformProperty, localToScreen, localToScreen, localToScreen, localToScreen, localToScreen, lookup, lookupAll, managedProperty, mouseTransparentProperty, nodeOrientationProperty, notifyAccessibleAttributeChanged, onContextMenuRequestedProperty, onDragDetectedProperty, onDragDoneProperty, onDragDroppedProperty, onDragEnteredProperty, onDragExitedProperty, onDragOverProperty, onInputMethodTextChangedProperty, onKeyPressedProperty, onKeyReleasedProperty, onKeyTypedProperty, onMouseClickedProperty, onMouseDragEnteredProperty, onMouseDragExitedProperty, onMouseDraggedProperty, onMouseDragOverProperty, onMouseDragReleasedProperty, onMouseEnteredProperty, onMouseExitedProperty, onMouseMovedProperty, onMousePressedProperty, onMouseReleasedProperty, onRotateProperty, onRotationFinishedProperty, onRotationStartedProperty, onScrollFinishedProperty, onScrollProperty, onScrollStartedProperty, onSwipeDownProperty, onSwipeLeftProperty, onSwipeRightProperty, onSwipeUpProperty, onTouchMovedProperty, onTouchPressedProperty, onTouchReleasedProperty, onTouchStationaryProperty, onZoomFinishedProperty, onZoomProperty, onZoomStartedProperty, opacityProperty, parentProperty, parentToLocal, parentToLocal, parentToLocal, parentToLocal, parentToLocal, pickOnBoundsProperty, pressedProperty, pseudoClassStateChanged, queryAccessibleAttribute, relocate, removeEventFilter, removeEventHandler, requestFocus, resizeRelocate, rotateProperty, rotationAxisProperty, scaleXProperty, scaleYProperty, scaleZProperty, sceneProperty, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, screenToLocal, screenToLocal, screenToLocal, setAccessibleHelp, setAccessibleRole, setAccessibleRoleDescription, setAccessibleText, setBlendMode, setCache, setCacheHint, setClip, setCursor, setDepthTest, setDisable, setDisabled, setEffect, setEventDispatcher, setEventHandler, setFocused, setFocusTraversable, setHover, setId, setInputMethodRequests, setLayoutX, setLayoutY, setManaged, setMouseTransparent, setNodeOrientation, setOnContextMenuRequested, setOnDragDetected, setOnDragDone, setOnDragDropped, setOnDragEntered, setOnDragExited, setOnDragOver, setOnInputMethodTextChanged, setOnKeyPressed, setOnKeyReleased, setOnKeyTyped, setOnMouseClicked, setOnMouseDragEntered, setOnMouseDragExited, setOnMouseDragged, setOnMouseDragOver, setOnMouseDragReleased, setOnMouseEntered, setOnMouseExited, setOnMouseMoved, setOnMousePressed, setOnMouseReleased, setOnRotate, setOnRotationFinished, setOnRotationStarted, setOnScroll, setOnScrollFinished, setOnScrollStarted, setOnSwipeDown, setOnSwipeLeft, setOnSwipeRight, setOnSwipeUp, setOnTouchMoved, setOnTouchPressed, setOnTouchReleased, setOnTouchStationary, setOnZoom, setOnZoomFinished, setOnZoomStarted, setOpacity, setPickOnBounds, setPressed, setRotate, setRotationAxis, setScaleX, setScaleY, setScaleZ, setStyle, setTranslateX, setTranslateY, setTranslateZ, setUserData, setViewOrder, setVisible, snapshot, snapshot, startDragAndDrop, startFullDrag, styleProperty, toBack, toFront, toString, translateXProperty, translateYProperty, translateZProperty, usesMirroring, viewOrderProperty, visibleProperty
Методы, объявленные в классе java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Методы, объявленные в интерфейсе javafx.css.Styleable
getStyleableNode
Подробное описание свойств
converter
public final ObjectProperty<StringConverter<TreeItem<T>>> converterProperty
StringConverter.selectedStateCallback
public final ObjectProperty<Callback<TreeItem<T>,ObservableValue<Boolean>>> selectedStateCallbackProperty
Callback, привязанный к элементу CheckBox, отображаемому на экране.Подробное описание конструкторов
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, разработчик несёт ответственность за обновление состояния родительских и дочерних TreeItems. Это означает, что, получив TreeItem, этот класс просто переключает ObservableValue<Boolean>, что предоставлено, и не более того. Конечно, эту функциональность можно реализовать внешним образом, добавив наблюдателей к ObservableValue<Boolean>, и переключая состояние других свойств по необходимости.
- Параметры:
-
getSelectedProperty-Callback, который вернётObservableValue<Boolean>, представляющее, выбран ли данный элемент. -
converter- StringConverter, который, получив объект типа TreeItem<T>, вернёт строку, которая может быть использована для визуального представления объекта.
Подробное описание методов
forTreeView
public static <T> Callback<TreeView<T>,TreeCell<T>> forTreeView()
CheckBoxTreeItem, а не стандартного класса TreeItem. При использовании в TreeView ячейка CheckBox отображается с 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)
forTreeView(), этот метод не предполагает, что все экземпляры TreeItem в TreeView являются CheckBoxTreeItem. При использовании в TreeView ячейка CheckBox отображается с CheckBox справа от 'узла раскрытия' (т.е. стрелки). Элемент, хранящийся в TreeItem.getValue(), затем будет иметь вызываемый StringConverter, и этот текст займёт всё оставшееся горизонтальное пространство.
В отличие от forTreeView(), эта фабрика ячеек не обрабатывает обновление состояния родительских или дочерних TreeItems - она просто переключает ObservableValue<Boolean>, что предоставлено, и не более того. Конечно, эту функциональность можно реализовать внешним образом, добавив наблюдателей к ObservableValue<Boolean>, и переключая состояние других свойств по необходимости.
- Параметры типа:
-
T- тип элементов, содержащихся в экземплярахTreeItem. - Параметры:
-
getSelectedProperty-Callback, который, получив объект типа TreeItem<T>, вернётObservableValue<Boolean>, представляющее, выбран ли данный элемент. ЭтоObservableValue<Boolean>будет привязано двунаправленно (что означает, что CheckBox в ячейке установит/сбросит это свойство на основе взаимодействия пользователя, и CheckBox отразит состояниеObservableValue<Boolean>, если оно изменится внешним образом). - Возвращает:
Callback, который вернёт TreeCell, способный работать с типом элемента, содержащегося в корне TreeView и всех его потомках (рекурсивно).
forTreeView
public static <T> Callback<TreeView<T>,TreeCell<T>> forTreeView(Callback<TreeItem<T>,ObservableValue<Boolean>> getSelectedProperty, StringConverter<TreeItem<T>> converter)
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 и всех его потомков (рекурсивно).
converterProperty
public final ObjectProperty<StringConverter<TreeItem<T>>> converterProperty()
StringConverter.- Returns:
- Свойство
StringConverter - See Also:
setConverter
public final void setConverter(StringConverter<TreeItem<T>> value)
StringConverter для использования в этой ячейке.- Parameters:
-
value-StringConverterдля использования в этой ячейке
getConverter
public final StringConverter<TreeItem<T>> getConverter()
StringConverter, используемый в этой ячейке.- Returns:
StringConverter, используемый в этой ячейке
selectedStateCallbackProperty
public final ObjectProperty<Callback<TreeItem<T>,ObservableValue<Boolean>>> selectedStateCallbackProperty()
Callback, к которому привязана отображаемая на экране CheckBox.- Returns:
- Свойство, представляющее
Callback, к которому привязана отображаемая на экране CheckBox - See Also:
setSelectedStateCallback
public final void setSelectedStateCallback(Callback<TreeItem<T>,ObservableValue<Boolean>> value)
Callback, к которому привязана отображаемая на экране CheckBox.- Parameters:
-
value-Callback, к которому привязана отображаемая на экране CheckBox
getSelectedStateCallback
public final Callback<TreeItem<T>,ObservableValue<Boolean>> getSelectedStateCallback()
Callback, к которому привязана отображаемая на экране CheckBox.- Returns:
Callback, к которому привязана отображаемая на экране CheckBox
updateItem
public void updateItem(T item, boolean empty)
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());
}
}
Обратите внимание на два важных момента в этом примере кода:
- Мы вызываем метод super.updateItem(T, boolean). Если этого не сделать, свойства item и empty не будут правильно установлены, и у вас, вероятно, возникнут графические проблемы.
- Мы проверяем условие
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.