Класс CheckBoxTreeCell<T>
- 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>
Параметры типа:
T - Тип элементов, содержащихся в экземплярах TreeItem TreeView.
Все реализуемые интерфейсы:
public class CheckBoxTreeCell<T> extends TreeCell<T>
TreeCell, рисующий узел CheckBox внутри ячейки, а также поддержку распространённых взаимодействий (подробно описано ниже). Для упрощения создания TreeView с флажками предоставляется вспомогательный класс CheckBoxTreeItem. Крайне рекомендуется использовать этот класс вместо стандартного класса TreeItem при построении структуры дерева TreeView. Обратитесь к документации API CheckBoxTreeItem для примера того, как эти два класса можно объединить.
При использовании в TreeView ячейка CheckBox отображается с 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
-
Краткое описание свойств
Все методыМетоды экземпляраКонкретные методы Тип Свойство и описание 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, 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.voidsetConverter(StringConverter<TreeItem<T>> value)Устанавливает используемый в этой ячейкеStringConverter.voidsetSelectedStateCallback(Callback<TreeItem<T>,ObservableValue<Boolean>> value)УстанавливаетCallback, к которому привязана отображаемая на экране CheckBox.voidupdateItem(T item, boolean empty)Метод updateItem не должен вызываться разработчиками, но это лучший метод для переопределения, позволяющий настроить визуализацию ячейки.-
Методы, унаследованные от класса javafx.scene.control.TreeCell
cancelEdit, commitEdit, createDefaultSkin, disclosureNodeProperty, executeAccessibleAction, getDisclosureNode, getTreeItem, getTreeView, queryAccessibleAttribute, setDisclosureNode, startEdit, treeItemProperty, treeViewProperty, updateTreeItem, updateTreeView
-
Методы, унаследованные от класса javafx.scene.control.IndexedCell
getIndex, indexProperty, updateIndex
-
Методы, унаследованные от класса javafx.scene.control.Cell
editableProperty, editingProperty, emptyProperty, getItem, isEditable, isEditing, isEmpty, isItemChanged, isSelected, itemProperty, selectedProperty, setEditable, setItem, updateSelected
-
Методы, унаследованные от класса javafx.scene.control.Labeled
alignmentProperty, contentDisplayProperty, ellipsisStringProperty, fontProperty, getAlignment, getClassCssMetaData, getContentBias, getContentDisplay, getControlCssMetaData, getEllipsisString, getFont, getGraphic, getGraphicTextGap, 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, toString, underlineProperty, wrapTextProperty
-
Методы, унаследованные от класса javafx.scene.control.Control
computeMaxHeight, computeMaxWidth, computeMinHeight, computeMinWidth, computePrefHeight, computePrefWidth, contextMenuProperty, getBaselineOffset, getContextMenu, getCssMetaData, getSkin, getTooltip, isResizable, layoutChildren, setContextMenu, setSkin, setTooltip, skinProperty, tooltipProperty
-
Методы, унаследованные от класса javafx.scene.layout.Region
backgroundProperty, borderProperty, cacheShapeProperty, centerShapeProperty, 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, snapSize, snapSpace, snapToPixelProperty, widthProperty
-
Методы, унаследованные от класса javafx.scene.Parent
getChildren, getChildrenUnmodifiable, getManagedChildren, getStylesheets, isNeedsLayout, layout, lookup, 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, fireEvent, focusedProperty, focusTraversableProperty, getAccessibleHelp, getAccessibleRole, getAccessibleRoleDescription, getAccessibleText, getBlendMode, getBoundsInLocal, getBoundsInParent, getCacheHint, getClip, getCursor, getDepthTest, getEffect, getEffectiveNodeOrientation, getEventDispatcher, getId, 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, 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, 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, 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, setVisible, snapshot, snapshot, startDragAndDrop, startFullDrag, styleProperty, toBack, toFront, translateXProperty, translateYProperty, translateZProperty, usesMirroring, visibleProperty
-
-
Подробное описание свойства
-
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, вернёт 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, вернёт ObservableValue<Boolean>, представляющий, выбран ли данный элемент. ЭтоObservableValue<Boolean>будет привязано двунаправленно (что означает, что флажок CheckBox в ячейке установит/сбросит это свойство на основе взаимодействия пользователя, и флажок CheckBox будет отражать состояниеObservableValue<Boolean>, если оно изменится внешним образом).Если элементы не являются экземплярами
CheckBoxTreeItem, разработчик несёт ответственность за обновление состояния родительских и дочерних TreeItems. Это означает, что, получив TreeItem, этот класс просто переключает предоставленноеObservableValue<Boolean>, и ничего больше. Конечно, эту функциональность можно реализовать внешним образом, добавив наблюдателей кObservableValue<Boolean>и переключая состояние других свойств по мере необходимости.Параметры:
getSelectedProperty-Callback, который вернётObservableValue<Boolean>, представляющий, выбран ли данный элемент.
-
-
Подробное описание метода
-
forTreeView
public static <T> Callback<TreeView<T>,TreeCell<T>> forTreeView()
Создаёт фабрику ячеек для использования в элементе управления TreeView, хотя при использовании в TreeView есть важное предположение: эта фабрика ячеек предполагает, что корень TreeView и все дочерние элементы являются экземплярами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.Возвращает:
A
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 ячейка CheckBox отображается с CheckBox справа от узла раскрытия (т.е. стрелки). Элемент, хранящийся в
TreeItem.getValue(), затем будет обработан StringConverter, и этот текст займёт всё оставшееся горизонтальное пространство.В отличие от
forTreeView(), эта фабрика ячеек не обрабатывает обновление состояния родительских или дочерних элементов TreeItem — она просто переключает состояниеObservableValue<Boolean>, предоставленного, и не более того. Конечно, эту функциональность можно реализовать внешним образом, добавив наблюдателей кObservableValue<Boolean>и переключив состояние других свойств по мере необходимости.Параметры типа:
T- Тип элементов, содержащихся в экземплярахTreeItem.Параметры:
getSelectedProperty- ACallback, который, получив объект типа TreeItem, вернёт ObservableValue<Boolean>, представляющий, выбран ли данный элемент. ЭтоObservableValue<Boolean>будет двунаправленно привязано (что означает, что CheckBox в ячейке будет устанавливать/снимать этот флаг на основе пользовательских взаимодействий, и CheckBox будет отражать состояниеObservableValue<Boolean>, если оно изменится внешним образом).Возвращает:
A
Callback, который вернёт TreeCell, способную работать с типом элемента, содержащегося в корне TreeView, и всеми его дочерними элементами (рекурсивно).
-
forTreeView
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 ячейка CheckBox отображается с CheckBox справа от узла раскрытия (т.е. стрелки). Элемент, хранящийся в
TreeItem.getValue(), затем будет обработан StringConverter, и этот текст займёт всё оставшееся горизонтальное пространство.В отличие от
forTreeView(), эта фабрика ячеек не обрабатывает обновление состояния родительских или дочерних элементов TreeItems — она просто переключает состояниеObservableValue<Boolean>, предоставленного, и не более того. Конечно, эту функциональность можно реализовать внешним образом, добавив наблюдателей кObservableValue<Boolean>и переключив состояние других свойств по мере необходимости.Параметры типа:
T- Тип элементов, содержащихся в экземплярахTreeItem.Параметры:
getSelectedProperty- Функция обратного вызова, которая, получив объект типа TreeItem, вернёт ObservableValue<Boolean>, представляющий, выбран ли данный элемент. ЭтоObservableValue<Boolean>будет двунаправленно привязано (что означает, что CheckBox в ячейке будет устанавливать/снимать этот флаг на основе пользовательских взаимодействий, и CheckBox будет отражать состояниеObservableValue<Boolean>, если оно изменится внешним образом).Возвращает:
A
Callback, который вернёт TreeCell, способную работать с типом элемента, содержащегося в корне TreeView, и всеми его дочерними элементами (рекурсивно).
-
converterProperty
public final ObjectProperty<StringConverter<TreeItem<T>>> converterProperty()
СвойствоStringConverter.
-
setConverter
public final void setConverter(StringConverter<TreeItem<T>> value)
УстанавливаетStringConverterдля использования в этой ячейке.
-
getConverter
public final StringConverter<TreeItem<T>> getConverter()
ВозвращаетStringConverter, используемый в этой ячейке.
-
selectedStateCallbackProperty
public final ObjectProperty<Callback<TreeItem<T>,ObservableValue<Boolean>>> selectedStateCallbackProperty()
Свойство, представляющееCallback, к которому привязана отображаемая CheckBox.
-
setSelectedStateCallback
public final void setSelectedStateCallback(Callback<TreeItem<T>,ObservableValue<Boolean>> value)
УстанавливаетCallback, к которому привязана отображаемая CheckBox.
-
getSelectedStateCallback
public final Callback<TreeItem<T>,ObservableValue<Boolean>> getSelectedStateCallback()
ВозвращаетCallback, к которому привязана отображаемая CheckBox.
-
updateItem
public void updateItem(T item, boolean empty)Метод updateItem не должен вызываться разработчиками, но это лучший метод для переопределения разработчиками, чтобы позволить им настроить визуальные элементы ячейки. Для ясности, разработчики никогда не должны вызывать этот метод в своём коде (они должны позволить элементу управления интерфейса, например, элементу управленияListView, вызвать этот метод). Однако, цель метода updateItem состоит в том, чтобы разработчики, при указании пользовательских фабрик ячеек (опять же, как ListViewcell 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. Если этого не сделать, с большой вероятностью конечные пользователи увидят графические артефакты в ячейках неожиданно.
Параметры:
item- Новый элемент для ячейки.
-
© 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.