- 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>
-
- Тип параметров:
-
T- Тип элементов, содержащихся в экземплярах TreeItem TreeView.
- Все реализуемые интерфейсы:
-
Styleable,EventTarget,Skinnable
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, 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.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, getInitialFocusTraversable, getItem, isEditable, isEditing, isEmpty, isItemChanged, isSelected, itemProperty, layoutChildren, selectedProperty, setEditable, setItem, 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, toString, underlineProperty, wrapTextProperty
-
Методы, унаследованные от класса javafx.scene.control.Control
computeMaxHeight, computeMaxWidth, computeMinHeight, computeMinWidth, computePrefHeight, computePrefWidth, contextMenuProperty, getBaselineOffset, getContextMenu, getCssMetaData, getSkin, getTooltip, isResizable, 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, snapPositionX, snapPositionY, snapSize, snapSizeX, snapSizeY, snapSpace, snapSpaceX, snapSpaceY, 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, 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, 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, setViewOrder, setVisible, snapshot, snapshot, startDragAndDrop, startFullDrag, styleProperty, toBack, toFront, 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.- Возвращает:
- свойство
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>, вернёт булево значение, обозначающее, выбран ли данный элемент. Это булево значение будет привязано двунаправленно (что означает, что CheckBox в ячейке установит/сбросит это значение на основе взаимодействия пользователя, а CheckBox будет отображать состояние этого значения, если оно изменится внешним образом).Если элементы не являются экземплярами
CheckBoxTreeItem, разработчик несёт ответственность за обновление состояния родительских и дочерних TreeItems. Это означает, что, получив TreeItem, этот класс просто переключает предоставленное булево значение, и ничего больше. Конечно, эту функциональность можно реализовать внешним образом, добавив наблюдателей к этому булевому значению и переключая состояние других необходимых свойств.- Параметры:
-
getSelectedProperty-Callback, возвращающий булево значение, обозначающее выбор элемента.
-
CheckBoxTreeCell
public CheckBoxTreeCell(Callback<TreeItem<T>,ObservableValue<Boolean>> getSelectedProperty, StringConverter<TreeItem<T>> converter)
Создаёт ячейкуCheckBoxTreeCellдля использования в элементе управления TreeView через фабрику ячеек. В отличие отCheckBoxTreeCell(), этот метод не предполагает, что все экземпляры TreeItem в TreeView являютсяCheckBoxTreeItem.Для вызова этого метода необходимо предоставить
Callback, который, получив объект типа TreeItem<T>, вернёт булево значение, обозначающее, выбран ли данный элемент. Это булево значение будет привязано двунаправленно (что означает, что CheckBox в ячейке установит/сбросит это значение на основе взаимодействия пользователя, а CheckBox будет отображать состояние этого значения, если оно изменится внешним образом).Если элементы не являются экземплярами
CheckBoxTreeItem, разработчик несёт ответственность за обновление состояния родительских и дочерних TreeItems. Это означает, что, получив TreeItem, этот класс просто переключает предоставленное булево значение, и ничего больше. Конечно, эту функциональность можно реализовать внешним образом, добавив наблюдателей к этому булевому значению и переключая состояние других необходимых свойств.- Параметры:
-
getSelectedProperty-Callback, возвращающий булево значение, обозначающее выбор элемента. -
converter- StringConverter, преобразующий объект типа TreeItem<T> в строку для визуального отображения.
-
-
Подробное описание методов
-
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());- Type Parameters:
-
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 ячейка CheckBox отображается с CheckBox справа от 'узла раскрытия' (т. е. стрелки). Элемент, хранящийся в
TreeItem.getValue(), затем будет обработан StringConverter, и этот текст займёт всё оставшееся горизонтальное пространство.В отличие от
forTreeView(), эта фабрика ячеек не обрабатывает обновление состояния родительских или дочерних TreeItem — она просто переключает предоставленноеObservableValue<Boolean>и ничего больше. Конечно, эту функциональность можно реализовать внешне, добавив наблюдатели кObservableValue<Boolean>и переключая состояние других свойств по мере необходимости.- Type Parameters:
-
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)
Создаёт фабрику ячеек для использования в элементе управления TreeView. В отличие отforTreeView(), этот метод не предполагает, что все экземпляры TreeItem в TreeView являются экземплярамиCheckBoxTreeItem.При использовании в TreeView ячейка CheckBox отображается с CheckBox справа от 'узла раскрытия' (т. е. стрелки). Элемент, хранящийся в
TreeItem.getValue(), затем будет обработан StringConverter, и этот текст займёт всё оставшееся горизонтальное пространство.В отличие от
forTreeView(), эта фабрика ячеек не обрабатывает обновление состояния родительских или дочерних TreeItems — она просто переключает предоставленноеObservableValue<Boolean>и ничего больше. Конечно, эту функциональность можно реализовать внешне, добавив наблюдатели кObservableValue<Boolean>и переключая состояние других свойств по мере необходимости.- Type Parameters:
-
T- Тип элементов, содержащихся в экземплярахTreeItem. - Параметры:
-
getSelectedProperty- Callback, который, получив объект типа TreeItem<T>, вернётObservableValue<Boolean>, представляющий собой выбран или нет данный элемент. ЭтоObservableValue<Boolean>будет привязано двунаправленно (что означает, что CheckBox в ячейке установит/сбросит это свойство в зависимости от взаимодействия пользователя, и CheckBox отобразит состояниеObservableValue<Boolean>, если оно изменится внешне). -
converter- StringConverter, который, получив объект типа TreeItem<T>, вернёт строку, которая может быть использована для визуального представления объекта. По умолчанию вforTreeView(Callback)используется просто вызов .toString() для всех не нулевых элементов (и просто возвращается пустая строка в случае, если данный элемент равен null). - Возвращает:
- А
Callback, который вернёт TreeCell, способный работать с типом элемента, содержащегося в корне TreeView и всех его потомках (рекурсивно).
-
converterProperty
public final ObjectProperty<StringConverter<TreeItem<T>>> converterProperty()
СвойствоStringConverter.- Возвращает:
- свойство
StringConverter
-
setConverter
public final void setConverter(StringConverter<TreeItem<T>> value)
УстанавливаетStringConverterдля использования в этой ячейке.- Параметры:
-
value-StringConverterдля использования в этой ячейке
-
getConverter
public final StringConverter<TreeItem<T>> getConverter()
ВозвращаетStringConverter, используемый в этой ячейке.- Возвращает:
StringConverter, используемый в этой ячейке
-
selectedStateCallbackProperty
public final ObjectProperty<Callback<TreeItem<T>,ObservableValue<Boolean>>> selectedStateCallbackProperty()
Свойство, представляющее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- новый элемент для ячейки. -
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.