Класс TreeView<T>
- Параметры типа:
-
T- Тип элемента, содержащегося в свойствеTreeItemvalue для всех элементов дерева в данном TreeView.
- Все реализованные интерфейсы:
-
Styleable,EventTarget,Skinnable
@DefaultProperty("root") public class TreeView<T> extends Control TreeItem). Используя TreeView, можно углубиться в поддерево элемента TreeItem, рекурсивно, пока элемент TreeItem не будет иметь дочерних элементов (то есть, это листовой узел в дереве). В отличие от таких контролов, как ListView, в TreeView необходимо только указать узел root. Для получения дополнительной информации о построении дерева с использованием этого подхода, обратитесь к документации класса TreeItem. Однако кратко, для создания TreeView, вы должны сделать что-то вроде следующего:
TreeItem<String> root = new TreeItem<>("Root Node");
root.setExpanded(true);
root.getChildren().addAll(
new TreeItem<>("Item 1"),
new TreeItem<>("Item 2"),
new TreeItem<>("Item 3")
);
TreeView<String> treeView = new TreeView<>(root); TreeView можно настроить на опциональное скрытие корневого узла, установив свойство showRoot в значение false. Если корневой узел скрыт, уровень отступа уменьшается, и все дочерние узлы корневого узла отображаются. По умолчанию корневой узел отображается в TreeView.
API выбора/фокуса TreeView
Для отслеживания выбора и фокуса необходимо ознакомиться с классами SelectionModel и FocusModel. TreeView имеет не более одного экземпляра каждого из этих классов, доступных из свойств selectionModel и focusModel соответственно. Хотя можно использовать этот API для установки нового модели выбора, в большинстве случаев это не требуется — модели выбора и фокуса по умолчанию должны работать в большинстве ситуаций.
По умолчанию используемая SelectionModel при создании TreeView реализует абстрактный класс MultipleSelectionModel. Однако, как указано в документации API для свойства selectionMode, значение по умолчанию — SelectionMode.SINGLE. Для включения множественного выбора в экземпляре TreeView по умолчанию необходимо выполнить следующие действия:
treeView.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE); Настройка визуальных элементов TreeView
Визуальные элементы TreeView можно полностью настроить, заменив завод по умолчанию cell factory. Фабрика ячеек используется для создания экземпляров TreeCell, которые используются для представления элемента в TreeView. См. документацию класса Cell для более полного описания того, как писать пользовательские ячейки.
Предупреждение: узлы не должны вставляться напрямую в ячейки TreeView
TreeView позволяет его ячейкам содержать элементы любого типа, включая Node экземпляры. Вставка узлов в ячейки TreeView настоятельно не рекомендуется, так как это может привести к непредсказуемым результатам. Важные моменты:
- Избегайте вставки
Nodeэкземпляров напрямую в ячейкиTreeViewили его модель данных. - Рекомендуемый подход заключается в размещении соответствующей информации в списке элементов и предоставлении пользовательской
cell factoryдля создания узлов для заданной ячейки и обновления их по требованию с использованием данных, хранящихся в элементе для этой ячейки. - Избегайте создания новых
Nodeв методеupdateItemпользовательскойcell factory.
Следующий минимальный пример демонстрирует, как создать пользовательскую фабрику ячеек для TreeView, содержащую Node:
TreeItem<Color> treeRoot = new TreeItem<>();
treeRoot.setExpanded(true);
TreeView<Color> treeView = new TreeView<>(treeRoot);
treeRoot.getChildren().addAll(
new TreeItem<>(Color.RED),
new TreeItem<>(Color.GREEN),
new TreeItem<>(Color.BLUE));
treeView.setCellFactory(p -> {
return new TreeCell<Color>() {
private final Rectangle rectangle;
{
setContentDisplay(ContentDisplay.GRAPHIC_ONLY);
rectangle = new Rectangle(10, 10);
}
@Override
protected void updateItem(Color item, boolean empty) {
super.updateItem(item, empty);
if (item == null || empty) {
setGraphic(null);
} else {
rectangle.setFill(item);
setGraphic(rectangle);
}
}
};}); В этом примере есть анонимный пользовательский класс TreeCell в пользовательской фабрике ячеек. Обратите внимание, что объект Rectangle (Node) должен быть создан в блоке инициализации экземпляра или конструкторе пользовательского класса TreeCell и обновлен/использован в его методе updateItem.
Редактирование
Этот контрол поддерживает редактирование значений в режиме реального времени, и этот раздел пытается дать обзор доступных API и того, как их следует использовать.
Во-первых, редактирование ячеек, как правило, требует другого пользовательского интерфейса, чем при отсутствии редактирования ячейки. Это ответственность реализации Cell, используемой. Для TreeView это ответственность cell factory. Вы сами решаете, будет ли ячейка постоянно в режиме редактирования (например, это обычно для ячеек CheckBox), или переключится на другой пользовательский интерфейс при начале редактирования (например, при двойном щелчке на ячейке).
Чтобы узнать, когда было запрошено редактирование ячейки, просто переопределите метод Cell.startEdit() и обновите свойства ячейки text и graphic соответственно (например, установите текст в null и установите графическое представление в TextField). Кроме того, вы также должны переопределить Cell.cancelEdit(), чтобы восстановить пользовательский интерфейс в исходное визуальное состояние при завершении редактирования. В обоих случаях важно также убедиться, что вы вызываете родительский метод, чтобы ячейка выполнила все задачи, которые ей необходимо выполнить, для входа или выхода из режима редактирования.
После того, как ваша ячейка находится в режиме редактирования, следующее, что вас, вероятно, интересует, — это то, как подтвердить или отменить выполняемое редактирование. Это ваша ответственность как поставщика фабрики ячеек. Ваша реализация ячейки будет знать, когда редактирование завершено, на основе пользовательского ввода (например, когда пользователь нажимает клавиши Enter или Esc на клавиатуре). В этом случае вам необходимо вызвать Cell.commitEdit(Object) или Cell.cancelEdit() соответственно.
Когда вы вызываете Cell.commitEdit(Object), генерируется событие в TreeView, которое вы можете наблюдать, добавив обработчик событий EventHandler через setOnEditCommit(javafx.event.EventHandler). Аналогично, вы также можете наблюдать события редактирования для edit start и edit cancel.
По умолчанию обработчик подтверждения редактирования TreeView не равен null и имеет обработчик по умолчанию, который пытается перезаписать значение свойства для элемента в текущей строке, которая редактируется. Он может сделать это, поскольку метод Cell.commitEdit(Object) принимает новое значение, и это значение передается обработчику подтверждения редактирования через TreeView.EditEvent, который генерируется. Это просто вопрос вызова TreeView.EditEvent.getNewValue() для получения этого значения.
Очень важно отметить, что если вы вызываете setOnEditCommit(javafx.event.EventHandler) со своим собственным обработчиком событий EventHandler, то вы удалите обработчик по умолчанию. Если вы затем не обработаете запись в свойство (или соответствующий источник данных), ничего не произойдет. Вы можете обойти это, используя метод Node.addEventHandler(javafx.event.EventType, javafx.event.EventHandler) для добавления editCommitEvent() EventType с желаемым обработчиком событий EventHandler в качестве второго аргумента. Используя этот метод, вы не замените реализацию по умолчанию, но вы будете уведомлены при выполнении подтверждения редактирования.
Надеюсь, этот обзор ответит на некоторые из часто задаваемых вопросов. К счастью, JavaFX поставляется с рядом предварительно созданных фабрик ячеек, которые обрабатывают все требования к редактированию за вас. Вы найдете эти предварительно созданные фабрики ячеек в пакете javafx.scene.control.cell.
- С момента:
- JavaFX 2.0
- См. также:
Краткое описание вложенных классов
| Modifier and Type | Class | Description |
|---|---|---|
static class |
TreeView.EditEvent<T> |
Подкласс Event, используемый в TreeView для представления событий, связанных с редактированием. |
Краткое описание свойств
| Тип | Свойство | Описание |
|---|---|---|
final ObjectProperty |
cellFactory |
Представляет фабрику ячеек, которая будет использоваться для создания TreeCells, используемых для представления элементов в TreeView. |
final BooleanProperty |
editable |
Указывает, является ли TreeView редактируемым - только если TreeView и TreeCells внутри него редактируемы, TreeCell сможет перейти в состояние редактирования. |
final ReadOnlyObjectProperty |
editingItem |
Свойство, используемое для представления TreeItem, который в данный момент редактируется в TreeView, если редактирование выполняется, или null, если элемент не редактируется. |
final ReadOnlyIntegerProperty |
expandedItemCount |
Представляет количество узлов дерева, которые в данный момент могут быть видны в TreeView. |
final DoubleProperty |
fixedCellSize |
Указывает, имеют ли ячейки этого элемента управления фиксированную высоту (указанной величины). |
final ObjectProperty |
focusModel |
FocusModel предоставляет API, с помощью которого можно управлять фокусом на нулевых или одной строке TreeView. |
final ObjectProperty |
onEditCancel |
Обработчик событий срабатывает при отмене пользователем редактирования ячейки. |
final ObjectProperty |
onEditCommit |
Это свойство используется, когда пользователь выполняет действие, которое должно привести к сохранению входных данных редактирования. |
final ObjectProperty |
onEditStart |
Обработчик событий срабатывает, когда пользователь успешно начинает редактирование. |
ObjectProperty |
onScrollTo |
Вызывается при запросе прокрутки индекса в область видимости с помощью scrollTo(int)
|
final ObjectProperty |
root |
Свойство, представляющее корневой узел TreeView. |
final ObjectProperty |
selectionModel |
SelectionModel предоставляет API, с помощью которого можно выбирать один или несколько элементов в TreeView, а также проверять, какие строки выбраны пользователем. |
final BooleanProperty |
showRoot |
Свойство, представляющее, отображается ли корневой узел TreeView. |
Свойства, объявленные в классе 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
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
TreeView() |
Создает пустой TreeView. |
TreeView |
Создает TreeView с предоставленным корневым узлом. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
final ObjectProperty |
cellFactoryProperty() |
Представляет фабрику ячеек, которая будет использоваться для создания TreeCells, используемых для представления элементов в TreeView. |
void |
edit |
Инструктирует TreeView начать редактирование указанного TreeItem, если TreeView имеет свойство editable. |
final BooleanProperty |
editableProperty() |
Указывает, является ли этот TreeView редактируемым — только если TreeView и TreeCells внутри него являются редактируемыми, TreeCell сможет перейти в состояние редактирования. |
static <T> EventType |
editAnyEvent() |
Тип события, указывающий на то, что произошло некоторое событие редактирования. |
static <T> EventType |
editCancelEvent() |
Тип события, используемый для указания того, что событие редактирования было отменено в TreeView, на котором было сгенерировано событие. |
static <T> EventType |
editCommitEvent() |
Тип события, используемый для указания того, что редактирование в TreeView было подтверждено. |
final ReadOnlyObjectProperty |
editingItemProperty() |
Свойство, используемое для представления TreeItem, который в данный момент редактируется в TreeView, если редактирование происходит, или null, если ни один элемент не редактируется. |
static <T> EventType |
editStartEvent() |
Тип события, используемый для указания того, что событие редактирования началось в TreeView, на котором было сгенерировано событие. |
final ReadOnlyIntegerProperty |
expandedItemCountProperty() |
Представляет количество узлов дерева, которые в настоящее время могут быть видны в TreeView. |
final DoubleProperty |
fixedCellSizeProperty() |
Указывает, имеют ли ячейки этого элемента управления фиксированный размер высоты (указанного значения). |
final ObjectProperty |
focusModelProperty() |
FocusModel предоставляет API, с помощью которого можно управлять фокусом на нулевых или одном рядах TreeView. |
final Callback |
getCellFactory() |
Возвращает фабрику ячеек, которая будет использоваться для создания TreeCells, используемых для представления элементов в TreeView, или null, если не была установлена пользовательская фабрика ячеек. |
static List |
getClassCssMetaData() |
Получает CssMetaData, связанное с этим классом, который может включать CssMetaData своих суперклассов. |
List |
getControlCssMetaData() |
Получает неизменяемый список стилизуемых CSS-свойств элемента управления. |
final TreeItem |
getEditingItem() |
Возвращает TreeItem, который в данный момент редактируется в TreeView, или null, если ни один элемент не редактируется. |
final int |
getExpandedItemCount() |
Получает значение свойства expandedItemCount. |
final double |
getFixedCellSize() |
Возвращает значение фиксированного размера ячейки. |
final FocusModel |
getFocusModel() |
Возвращает текущую установленную FocusModel. |
static int |
getNodeLevel |
Устарело. Этот метод некорректно вычисляет расстояние от заданного TreeItem до корня TreeView. |
final EventHandler |
getOnEditCancel() |
Возвращает EventHandler, который будет вызван, когда пользователь отменит редактирование. |
final EventHandler |
getOnEditCommit() |
Возвращает EventHandler, который будет вызван, когда пользователь подтвердит редактирование. |
final EventHandler |
getOnEditStart() |
Возвращает EventHandler, который будет вызван, когда пользователь начнёт редактирование. |
EventHandler |
getOnScrollTo() |
Получает значение свойства onScrollTo. |
final TreeItem |
getRoot() |
Возвращает текущий корневой узел этого TreeView, или null, если корневой узел не задан. |
int |
getRow |
Возвращает позицию индекса заданного TreeItem, предполагая, что он в настоящее время доступен через иерархию дерева (в частности, что все родительские элементы дерева развернуты). |
final MultipleSelectionModel |
getSelectionModel() |
Возвращает текущую установленную модель выделения. |
TreeItem |
getTreeItem |
Возвращает TreeItem в заданном индексе, или null, если он вне границ. |
int |
getTreeItemLevel |
Возвращает количество уровней «отступов» заданного TreeItem, основанное на том, сколько раз можно рекурсивно вызвать getParent(). |
final boolean |
isEditable() |
Получает значение свойства editable. |
final boolean |
isShowRoot() |
Возвращает true, если корень TreeView должен быть показан, и false, если он не должен. |
final ObjectProperty |
onEditCancelProperty() |
Этот обработчик событий будет вызван, когда пользователь отменяет редактирование ячейки. |
final ObjectProperty |
onEditCommitProperty() |
Это свойство используется, когда пользователь выполняет действие, которое должно привести к сохранению их входных данных редактирования. |
final ObjectProperty |
onEditStartProperty() |
Этот обработчик событий будет вызван, когда пользователь успешно инициирует редактирование. |
ObjectProperty |
onScrollToProperty() |
Вызывается, когда есть запрос на прокрутку индекса в область видимости с помощью scrollTo(int)
|
void |
refresh() |
Вызов refresh() заставляет элемент управления TreeView пересоздать и повторно заполнить ячейки, необходимые для заполнения визуальных границ элемента управления. |
final ObjectProperty |
rootProperty() |
Свойство, представляющее корневой узел TreeView. |
void |
scrollTo |
Прокручивает TreeView таким образом, чтобы элемент в заданном индексе был виден пользователю. |
final ObjectProperty |
selectionModelProperty() |
SelectionModel предоставляет API, с помощью которого можно выбрать один или несколько элементов в TreeView, а также проверить, какие строки были выбраны пользователем. |
final void |
setCellFactory |
Устанавливает фабрику ячеек, которая будет использоваться для создания TreeCells, используемых для представления элементов в TreeView. |
final void |
setEditable |
Устанавливает значение свойства editable. |
final void |
setFixedCellSize |
Устанавливает новый фиксированный размер ячейки для этого элемента управления. |
final void |
setFocusModel |
Устанавливает FocusModel, который будет использоваться в TreeView. |
final void |
setOnEditCancel |
Устанавливает EventHandler, который будет вызван, когда пользователь отменяет редактирование. |
final void |
setOnEditCommit |
Устанавливает EventHandler, который будет вызван, когда пользователь подтверждает редактирование. |
final void |
setOnEditStart |
Устанавливает EventHandler, который будет вызван, когда пользователь начинает редактирование. |
void |
setOnScrollTo |
Устанавливает значение свойства onScrollTo. |
final void |
setRoot |
Устанавливает корневой узел в этом TreeView. |
final void |
setSelectionModel |
Устанавливает MultipleSelectionModel для использования в TreeView. |
final void |
setShowRoot |
Указывает, должен ли корневой TreeItem быть показан в этом TreeView. |
final BooleanProperty |
showRootProperty() |
Свойство, представляющее, отображается ли корневой узел TreeView. |
Методы, объявленные в классе javafx.scene.control.Control
computeMaxHeight, computeMaxWidth, computeMinHeight, computeMinWidth, contextMenuProperty, createDefaultSkin, getContextMenu, getCssMetaData, getInitialFocusTraversable, 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, getContentBias, 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, requestFocusTraversal, 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
Свойства
cellFactory
public final ObjectProperty<Callback<TreeView<T>,TreeCell<T>>> cellFactoryProperty
- См. также:
root
public final ObjectProperty<TreeItem<T>> rootProperty
- См. также:
showRoot
public final BooleanProperty showRootProperty
- См. также:
selectionModel
public final ObjectProperty<MultipleSelectionModel<TreeItem<T>>> selectionModelProperty
- См. также:
focusModel
public final ObjectProperty<FocusModel<TreeItem<T>>> focusModelProperty
- См. также:
expandedItemCount
public final ReadOnlyIntegerProperty expandedItemCountProperty
Представляет количество узлов дерева, которые в настоящее время могут быть видны в TreeView. Это в основном подсчет всех развернутых элементов дерева и их потомков.
Например, если виден только корневой узел, expandedItemCount будет равен одному. Если у корня было три дочерних элемента, а корень был развернут, значение будет четыре.
- С:
- JavaFX 8.0
- См. также:
fixedCellSize
public final DoubleProperty fixedCellSizeProperty
Для установки этого свойства через CSS используйте свойство -fx-fixed-cell-size. Не следует путать его со свойством -fx-cell-size. Разница между этими двумя свойствами CSS заключается в том, что -fx-cell-size задаст размер всех ячеек до указанного значения, но не будет навязывать, что это единственный размер (что позволит изменять размеры ячеек и предотвратит получение прироста производительности). Поэтому, когда важна производительность, используйте -fx-fixed-cell-size, а не -fx-cell-size. Если оба свойства указаны в CSS, -fx-fixed-cell-size имеет приоритет.
- С:
- JavaFX 8.0
- См. также:
editable
public final BooleanProperty editableProperty
- См. также:
editingItem
public final ReadOnlyObjectProperty<TreeItem<T>> editingItemProperty
Свойство, используемое для представления TreeItem, который в данный момент редактируется в TreeView, если редактирование происходит, или null, если ни один элемент не редактируется.
Установить элемент редактирования нельзя, вместо этого необходимо вызвать edit(javafx.scene.control.TreeItem).
- См. также:
onEditStart
public final ObjectProperty<EventHandler<TreeView.EditEvent<T>>> onEditStartProperty
- См. также:
onEditCommit
public final ObjectProperty<EventHandler<TreeView.EditEvent<T>>> onEditCommitProperty
Это свойство используется, когда пользователь выполняет действие, которое должно привести к сохранению его входных данных при редактировании.
Обработчик событий в этом свойстве не должен вызываться напрямую — вместо этого вызовите Cell.commitEdit(java.lang.Object) изнутри вашей настраиваемой TreeCell. Это обработает запуск этого события, обновление представления и выход из состояния редактирования.
- См. также:
onEditCancel
public final ObjectProperty<EventHandler<TreeView.EditEvent<T>>> onEditCancelProperty
- См. также:
onScrollTo
public ObjectProperty<EventHandler<ScrollToEvent<Integer>>> onScrollToProperty
scrollTo(int)
- С:
- JavaFX 8.0
- См. также:
Подробное описание конструкторов
TreeView
public TreeView()
Обратитесь к документации класса TreeView за подробностями о состоянии свойств по умолчанию.
TreeView
public TreeView(TreeItem<T> root)
Обратитесь к документации класса TreeView за подробностями о состоянии свойств по умолчанию.
- Параметры:
-
root— узел, который будет корнем в данном TreeView.
Подробное описание методов
editAnyEvent
public static <T> EventType<TreeView.EditEvent<T>> editAnyEvent()
editStartEvent(), editCommitEvent() и editCancelEvent().- Параметры типа:
-
T— тип экземпляров TreeItem, используемых в этом TreeView - Возвращает:
- Тип события, указывающий на то, что произошло событие редактирования.
editStartEvent
public static <T> EventType<TreeView.EditEvent<T>> editStartEvent()
- Параметры типа:
-
T— тип экземпляров TreeItem, используемых в этом TreeView - Возвращает:
- Тип события, используемый для указания того, что событие редактирования началось.
editCancelEvent
public static <T> EventType<TreeView.EditEvent<T>> editCancelEvent()
- Type Parameters:
-
T- тип экземпляров TreeItem, используемых в этом TreeView - Возвращает:
- Тип события (EventType), используемый для указания того, что событие редактирования только что было отменено.
editCommitEvent
public static <T> EventType<TreeView.EditEvent<T>> editCommitEvent()
- Type Parameters:
-
T- тип экземпляров TreeItem, используемых в этом TreeView - Возвращает:
- Тип события (EventType), используемый для указания того, что редактирование в TreeView было подтверждено.
getNodeLevel
@Deprecated(since="8u20") public static int getNodeLevel(TreeItem<?> node)
getTreeItemLevel(TreeItem)
TreeItem.getParent(). Если у TreeItem нет родительского элемента, возвращаемое значение будет нулём. Каждый раз, когда рекурсивно вызывается getParent(), возвращаемое значение увеличивается на единицу. Важно: Этот метод устарел, так как он не учитывает узел корня. Это означает, что этот метод будет переходить за пределы корневого узла элемента управления TreeView, если у корневого узла есть родитель. Если это важно, используйте getTreeItemLevel(TreeItem) вместо этого.
- Параметры:
-
node- TreeItem, для которого требуется уровень. - Возвращает:
- Целое число, представляющее количество родителей над данным узлом, или -1, если заданный TreeItem равен null.
setCellFactory
public final void setCellFactory(Callback<TreeView<T>,TreeCell<T>> value)
См. документацию по классу Cell для получения более подробной информации.
- Параметры:
-
value-Callbackдля генерации экземпляров TreeCell, или null, если следует использовать фабрику ячеек по умолчанию.
getCellFactory
public final Callback<TreeView<T>,TreeCell<T>> getCellFactory()
Возвращает фабрику ячеек, которая будет использоваться для создания TreeCells, используемых для представления элементов в TreeView, или null, если пользовательская фабрика ячеек не была задана.
- Возвращает:
- фабрика ячеек
cellFactoryProperty
public final ObjectProperty<Callback<TreeView<T>,TreeCell<T>>> cellFactoryProperty()
- Возвращает:
- свойство фабрики ячеек
- См. также:
setRoot
getRoot
public final TreeItem<T> getRoot()
- Возвращает:
- Текущий корневой узел или null, если корневой узел отсутствует.
rootProperty
public final ObjectProperty<TreeItem<T>> rootProperty()
- Возвращает:
- свойство корневого узла
- См. также:
setShowRoot
public final void setShowRoot(boolean value)
TreeItem отображаться в этом TreeView.- Параметры:
-
value- Если true, корневой TreeItem будет отображаться, а если false — скрываться.
isShowRoot
public final boolean isShowRoot()
- Возвращает:
- true, если корень TreeView должен быть показан
showRootProperty
public final BooleanProperty showRootProperty()
- Возвращает:
- свойство отображения корня
- См. также:
setSelectionModel
public final void setSelectionModel(MultipleSelectionModel<TreeItem<T>> value)
MultipleSelectionModel для использования в TreeView. Несмотря на то, что TreeView требует MultipleSelectionModel, можно настроить его так, чтобы допускалось только однократное выделение (см. MultipleSelectionModel.setSelectionMode(javafx.scene.control.SelectionMode) для получения дополнительной информации).- Параметры:
-
value- используемыйMultipleSelectionModel
getSelectionModel
public final MultipleSelectionModel<TreeItem<T>> getSelectionModel()
- Возвращает:
- текущую установленную модель выбора
selectionModelProperty
public final ObjectProperty<MultipleSelectionModel<TreeItem<T>>> selectionModelProperty()
- Возвращает:
- свойство модели выбора
- См. также:
setFocusModel
public final void setFocusModel(FocusModel<TreeItem<T>> value)
FocusModel для использования в TreeView.- Параметры:
-
value- используемыйFocusModel
getFocusModel
public final FocusModel<TreeItem<T>> getFocusModel()
FocusModel.- Возвращает:
- текущую установленную
FocusModel
focusModelProperty
public final ObjectProperty<FocusModel<TreeItem<T>>> focusModelProperty()
- Возвращает:
- свойство модели фокуса
- См. также:
expandedItemCountProperty
public final ReadOnlyIntegerProperty expandedItemCountProperty()
Представляет количество узлов дерева, которые в настоящее время могут быть видны в TreeView. Это по существу подсчет всех развернутых элементов дерева и их дочерних элементов.
Например, если виден только корневой узел, expandedItemCount будет равен одному. Если у корневого узла было три дочерних узла, и корневой узел был развернут, значение будет равно четырем.
- Возвращает:
- свойство
expandedItemCount - С момента:
- JavaFX 8.0
- См. также:
getExpandedItemCount
public final int getExpandedItemCount()
expandedItemCount.- Описание свойства:
-
Представляет количество узлов дерева, которые в настоящее время могут быть видны в TreeView. Это по существу подсчет всех развернутых элементов дерева и их дочерних элементов.
Например, если виден только корневой узел, expandedItemCount будет равен одному. Если у корневого узла было три дочерних узла, и корневой узел был развернут, значение будет равно четырем.
- Возвращает:
- значение свойства
expandedItemCount - С момента:
- JavaFX 8.0
- См. также:
setFixedCellSize
public final void setFixedCellSize(double value)
- Параметры:
-
value- Новое значение фиксированного размера ячейки или значение, меньшее или равное нулю (или Region.USE_COMPUTED_SIZE) для отключения. - С момента:
- JavaFX 8.0
getFixedCellSize
public final double getFixedCellSize()
- Возвращает:
- Двойное значение, представляющее фиксированный размер ячейки этого элемента управления, или значение, меньшее или равное нулю, если режим фиксированного размера ячейки отключен.
- С момента:
- JavaFX 8.0
fixedCellSizeProperty
public final DoubleProperty fixedCellSizeProperty()
Чтобы установить это свойство через CSS, используйте свойство -fx-fixed-cell-size. Не следует путать его со свойством -fx-cell-size. Разница между этими двумя свойствами CSS заключается в том, что -fx-cell-size задаст размер всех ячеек до указанного размера, но не будет навязывать, что это единственный размер (тем самым позволяя переменные размеры ячеек и предотвращая возможность повышения производительности). Поэтому, когда важна производительность, используйте -fx-fixed-cell-size вместо -fx-cell-size. Если оба свойства указаны в CSS, -fx-fixed-cell-size имеет приоритет.
- Возвращает:
- свойство фиксированного размера ячейки
- С момента:
- JavaFX 8.0
- См. также:
setEditable
public final void setEditable(boolean value)
editable.- Описание свойства:
- Указывает, является ли этот TreeView редактируемым - только если TreeView и TreeCells внутри него оба редактируемы, TreeCell сможет перейти в состояние редактирования.
- Параметры:
-
value- значение для свойстваeditable - См. также:
isEditable
public final boolean isEditable()
editable.- Описание свойства:
- Указывает, является ли этот TreeView редактируемым - только если TreeView и TreeCells внутри него оба редактируемы, TreeCell сможет перейти в состояние редактирования.
- Возвращает:
- значение свойства
editable - См. также:
editableProperty
public final BooleanProperty editableProperty()
- Возвращает:
- свойство editable
- См. также:
getEditingItem
public final TreeItem<T> getEditingItem()
- Возвращает:
- TreeItem, который в данный момент редактируется в TreeView
editingItemProperty
public final ReadOnlyObjectProperty<TreeItem<T>> editingItemProperty()
Свойство, используемое для представления TreeItem, который в настоящее время редактируется в TreeView, если редактирование выполняется, или null, если ни один элемент не редактируется.
Установить редактируемый элемент невозможно, вместо этого необходимо вызвать edit(javafx.scene.control.TreeItem).
- Возвращает:
- свойство editing item
- См. также:
setOnEditStart
public final void setOnEditStart(EventHandler<TreeView.EditEvent<T>> value)
EventHandler, который будет вызван, когда пользователь начнет редактирование.- Параметры:
-
value- обработчик событийEventHandler, который будет вызван, когда пользователь начнет редактирование
getOnEditStart
public final EventHandler<TreeView.EditEvent<T>> getOnEditStart()
EventHandler, который будет вызван, когда пользователь начнет редактирование.- Возвращает:
- обработчик событий
EventHandler, который будет вызван, когда пользователь начнет редактирование
onEditStartProperty
public final ObjectProperty<EventHandler<TreeView.EditEvent<T>>> onEditStartProperty()
- Возвращает:
- обработчик событий, когда пользователь успешно инициирует редактирование
- См. также:
setOnEditCommit
public final void setOnEditCommit(EventHandler<TreeView.EditEvent<T>> value)
EventHandler, который будет вызван, когда пользователь подтвердит редактирование.- Параметры:
-
value- обработчик событийEventHandler, который будет вызван, когда пользователь подтвердит редактирование
getOnEditCommit
public final EventHandler<TreeView.EditEvent<T>> getOnEditCommit()
EventHandler, который будет вызван, когда пользователь подтвердит редактирование.- Возвращает:
- обработчик событий
EventHandler, который будет вызван, когда пользователь подтвердит редактирование
onEditCommitProperty
public final ObjectProperty<EventHandler<TreeView.EditEvent<T>>> onEditCommitProperty()
Это свойство используется, когда пользователь выполняет действие, которое должно привести к сохранению их ввода при редактировании.
Обработчик событий в этом свойстве не должен вызываться напрямую - вместо этого вызовите Cell.commitEdit(java.lang.Object) в своем пользовательском TreeCell. Это позволит обработать срабатывание этого события, обновить представление и выйти из состояния редактирования.
- Возвращает:
- обработчик событий, когда пользователь выполняет действие, которое приводит к сохранению их ввода при редактировании
- См. также:
Обработчик отмены редактирования
public final void setOnEditCancel(EventHandler<TreeView.EditEvent<T>> value)
EventHandler, который будет вызван при отмене редактирования пользователем.- Параметры:
-
value-EventHandler, который будет вызван при отмене редактирования пользователем
getOnEditCancel
public final EventHandler<TreeView.EditEvent<T>> getOnEditCancel()
EventHandler, который будет вызван при отмене редактирования пользователем.- Возвращает:
EventHandler, который будет вызван при отмене редактирования пользователем
onEditCancelProperty
public final ObjectProperty<EventHandler<TreeView.EditEvent<T>>> onEditCancelProperty()
- Возвращает:
- обработчик событий, который будет вызван, когда пользователь отменяет редактирование ячейки
- См. также:
edit
public void edit(TreeItem<T> item)
editable. После вызова этого метода, если текущий cell factory настроен для поддержки редактирования, ячейка изменит своё визуальное состояние, чтобы включить ввод данных пользователем.- Параметры:
-
item- TreeItem в TreeView, который должен быть отредактирован.
scrollTo
public void scrollTo(int index)
- Параметры:
-
index- Индекс элемента, который должен быть виден пользователю, предполагая, что он больше или равен 0 и меньше количества видимых элементов в TreeView.
setOnScrollTo
public void setOnScrollTo(EventHandler<ScrollToEvent<Integer>> value)
onScrollTo.- Описание свойства:
- Вызывается при запросе прокрутки элемента по индексу с помощью
scrollTo(int) - Параметры:
-
value- значение для свойстваonScrollTo - С:
- JavaFX 8.0
- См. также:
getOnScrollTo
public EventHandler<ScrollToEvent<Integer>> getOnScrollTo()
onScrollTo.- Описание свойства:
- Вызывается при запросе прокрутки элемента по индексу с помощью
scrollTo(int) - Возвращает:
- значение свойства
onScrollTo - С:
- JavaFX 8.0
- См. также:
onScrollToProperty
public ObjectProperty<EventHandler<ScrollToEvent<Integer>>> onScrollToProperty()
scrollTo(int)
- Возвращает:
- свойство
onScrollTo - С:
- JavaFX 8.0
- См. также:
getRow
public int getRow(TreeItem<T> item)
- Параметры:
-
item- TreeItem, для которого ищется индекс. - Возвращает:
- Целое число, представляющее расположение в текущем TreeView первого экземпляра заданного TreeItem, или -1, если он равен null или не найден (например, если родительский (до корневого) свёрнут).
getTreeItem
public TreeItem<T> getTreeItem(int row)
- Параметры:
-
row- Индекс искомого TreeItem. - Возвращает:
- TreeItem по заданному индексу или null, если индекс вне диапазона.
getTreeItemLevel
public int getTreeItemLevel(TreeItem<?> node)
- Параметры:
-
node- TreeItem, для которого требуется уровень. - Возвращает:
- Целое число, представляющее количество родителей над данным узлом, или -1, если заданный TreeItem равен null.
refresh
public void refresh()
refresh() заставляет элемент управления TreeView пересоздать и повторно заполнить ячейки, необходимые для заполнения визуальных границ элемента управления. Другими словами, это заставляет TreeView обновить отображаемые данные для пользователя. Это полезно в случаях, когда базовый источник данных изменился таким образом, что TreeView не отслеживает эти изменения.- С:
- JavaFX 8u60
getClassCssMetaData
public static List<CssMetaData<? extends Styleable,?>> getClassCssMetaData()
CssMetaData, ассоциированные с данным классом, что может включать в себя CssMetaData его суперклассов.- Возвращает:
CssMetaData- С:
- JavaFX 8.0
getControlCssMetaData
public List<CssMetaData<? extends Styleable,?>> getControlCssMetaData()
- Переопределяет:
-
getControlCssMetaDataв классеControl - Возвращает:
- неизменяемый список стилизуемых через CSS свойств элемента управления
- С:
- JavaFX 8.0
© 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.