Spec-Zone.ru › OpenJavaFX 8
javafx.scene.control.cell

Класс 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>

Параметры типа:

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, 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

      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
    • Методы, унаследованные от класса java.lang.Object

      clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Подробное описание свойства

    • converter

      public final ObjectProperty<StringConverter<TreeItem<T>>> converterProperty
      Свойство 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, вернёт 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 - A Callback, который, получив объект типа 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.

      См. также:

      getSelectedStateCallback(), setSelectedStateCallback(Callback)

    • 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 состоит в том, чтобы разработчики, при указании пользовательских фабрик ячеек (опять же, как 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. Если этого не сделать, с большой вероятностью конечные пользователи увидят графические артефакты в ячейках неожиданно.

      Параметры:

      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.

Spec-Zone.ru

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