Класс TreeView<T>
- Параметры типа:
-
T- тип элемента, содержащегося в свойстве значенияTreeItemдля всех элементов дерева в этом 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.
Сводка свойств
| Тип | Свойство | Описание |
|---|---|---|
final ObjectProperty<Callback<TreeView<T>, |
cellFactory |
Представляет фабрику ячеек, которая будет использоваться для создания TreeCells, используемых для представления элементов в TreeView. |
final BooleanProperty |
editable |
Указывает, является ли этот TreeView редактируемым — только если TreeView и TreeCells в нем редактируемы, TreeCell сможет перейти в состояние редактирования. |
final ReadOnlyObjectProperty<TreeItem<T>> |
editingItem |
Свойство, используемое для представления элемента TreeItem, который в данный момент редактируется в TreeView, если редактирование происходит, или null, если ни один элемент не редактируется. |
final ReadOnlyIntegerProperty |
expandedItemCount |
Представляет количество узлов дерева, которые в данный момент могут быть видны в TreeView. |
final DoubleProperty |
fixedCellSize |
Указывает, имеют ли ячейки этого элемента фиксированную высоту (указанного значения). |
final ObjectProperty<FocusModel<TreeItem<T>>> |
focusModel |
FocusModel предоставляет API, с помощью которого можно управлять фокусом на нулевых или одном рядах TreeView. |
final ObjectProperty<EventHandler<TreeView.EditEvent<T>>> |
onEditCancel |
Обработчик событий, который будет вызван, когда пользователь отменит редактирование ячейки. |
final ObjectProperty<EventHandler<TreeView.EditEvent<T>>> |
onEditCommit |
Это свойство используется, когда пользователь выполняет действие, которое должно привести к сохранению его входных данных редактирования. |
final ObjectProperty<EventHandler<TreeView.EditEvent<T>>> |
onEditStart |
Этот обработчик событий будет вызван, когда пользователь успешно инициирует редактирование. |
ObjectProperty<EventHandler<ScrollToEvent<Integer>>> |
onScrollTo |
Вызывается, когда есть запрос на прокрутку индекса в область видимости с помощью scrollTo(int)
|
final ObjectProperty<TreeItem<T>> |
root |
Свойство, представляющее корневой узел TreeView. |
final ObjectProperty<MultipleSelectionModel<TreeItem<T>>> |
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
Сводка вложенных классов
| Модификатор и тип | Класс | Описание |
|---|---|---|
static class |
TreeView.EditEvent<T> |
Подкласс Event, используемый в TreeView для представления событий, связанных с редактированием. |
Сводка полей
Поля, объявленные в классе javafx.scene.layout.Region
USE_COMPUTED_SIZE, USE_PREF_SIZE
Поля, объявленные в классе javafx.scene.Node
BASELINE_OFFSET_SAME_AS_HEIGHT
Сводка конструкторов
| Конструктор | Описание |
|---|---|
TreeView() |
Создаёт пустой TreeView. |
TreeView |
Создаёт TreeView с указанным корневым узлом. |
Краткое описание методов
| Modifier and Type | Method | Description |
|---|---|---|
final ObjectProperty<Callback<TreeView<T>, |
cellFactoryProperty() |
Представляет фабрику ячеек, которая будет использоваться для создания TreeCells, используемых для представления элементов в TreeView. |
void |
edit |
Инструктирует TreeView начать редактирование заданного TreeItem, если TreeView является editable. |
final BooleanProperty |
editableProperty() |
Определяет, является ли этот TreeView редактируемым — только если TreeView и TreeCells внутри него оба редактируемы, TreeCell сможет перейти в состояние редактирования. |
static <T> EventType<TreeView.EditEvent<T>> |
editAnyEvent() |
Тип события, указывающий на то, что произошло какое-либо событие редактирования. |
static <T> EventType<TreeView.EditEvent<T>> |
editCancelEvent() |
Тип события, используемый для указания на то, что событие редактирования только что было отменено внутри TreeView, на котором было сгенерировано событие. |
static <T> EventType<TreeView.EditEvent<T>> |
editCommitEvent() |
Тип события, используемый для указания на то, что редактирование в TreeView было подтверждено. |
final ReadOnlyObjectProperty<TreeItem<T>> |
editingItemProperty() |
Свойство, используемое для представления TreeItem, который в данный момент редактируется в TreeView, если происходит редактирование, или null, если ни один элемент не редактируется. |
static <T> EventType<TreeView.EditEvent<T>> |
editStartEvent() |
Тип события, используемый для указания на то, что событие редактирования началось внутри TreeView, на котором было сгенерировано событие. |
final ReadOnlyIntegerProperty |
expandedItemCountProperty() |
Представляет количество узлов дерева, которые в настоящее время могут быть видны в TreeView. |
final DoubleProperty |
fixedCellSizeProperty() |
Указывает, имеют ли ячейки этого элемента управления фиксированную высоту (заданного значения). |
final ObjectProperty<FocusModel<TreeItem<T>>> |
focusModelProperty() |
FocusModel предоставляет API, с помощью которого можно управлять фокусом на нулевых или одной строке TreeView. |
final Callback<TreeView<T>, |
getCellFactory() |
Возвращает фабрику ячеек, которая будет использоваться для создания TreeCells, используемых для представления элементов в TreeView, или null, если пользовательская фабрика ячеек не установлена. |
static List<CssMetaData<? extends Styleable, |
getClassCssMetaData() |
Получает CssMetaData, ассоциированные с этим классом, которые могут включать CssMetaData его суперклассов. |
List<CssMetaData<? extends Styleable, |
getControlCssMetaData() |
Получает неизменяемый список стилизуемых свойств элемента управления CSS. |
final TreeItem<T> |
getEditingItem() |
Возвращает TreeItem, который в данный момент редактируется в TreeView, или null, если ни один элемент не редактируется. |
final int |
getExpandedItemCount() |
Получает значение свойства expandedItemCount. |
final double |
getFixedCellSize() |
Возвращает значение фиксированного размера ячейки. |
final FocusModel<TreeItem<T>> |
getFocusModel() |
Возвращает текущую установленную FocusModel. |
static int |
getNodeLevel |
Устарело. Этот метод не правильно вычисляет расстояние от заданного TreeItem до корня TreeView. |
final EventHandler<TreeView.EditEvent<T>> |
getOnEditCancel() |
Возвращает EventHandler, который будет вызван при отмене редактирования пользователем. |
final EventHandler<TreeView.EditEvent<T>> |
getOnEditCommit() |
Возвращает EventHandler, который будет вызван при подтверждении редактирования пользователем. |
final EventHandler<TreeView.EditEvent<T>> |
getOnEditStart() |
Возвращает EventHandler, который будет вызван при начале редактирования пользователем. |
EventHandler<ScrollToEvent<Integer>> |
getOnScrollTo() |
Получает значение свойства onScrollTo. |
final TreeItem<T> |
getRoot() |
Возвращает текущий корневой узел этого TreeView, или null, если корневой узел не указан. |
int |
getRow |
Возвращает позицию индекса данного TreeItem, предполагая, что он в настоящее время доступен через иерархию дерева (в первую очередь, что все родительские элементы дерева раскрыты). |
final MultipleSelectionModel<TreeItem<T>> |
getSelectionModel() |
Возвращает текущую установленную модель выделения. |
TreeItem<T> |
getTreeItem |
Возвращает TreeItem в заданном индексе или null, если он находится вне диапазона. |
int |
getTreeItemLevel |
Возвращает количество уровней «отступа» данного TreeItem, в зависимости от того, сколько раз можно рекурсивно вызвать getParent(). |
final boolean |
isEditable() |
Получает значение свойства editable. |
final boolean |
isShowRoot() |
Возвращает true, если корень TreeView должен быть показан, и false, если нет. |
final ObjectProperty<EventHandler<TreeView.EditEvent<T>>> |
onEditCancelProperty() |
Этот обработчик событий будет вызван, когда пользователь отменит редактирование ячейки. |
final ObjectProperty<EventHandler<TreeView.EditEvent<T>>> |
onEditCommitProperty() |
Это свойство используется, когда пользователь выполняет действие, которое должно привести к сохранению их ввода при редактировании. |
final ObjectProperty<EventHandler<TreeView.EditEvent<T>>> |
onEditStartProperty() |
Этот обработчик событий будет вызван, когда пользователь успешно инициирует редактирование. |
ObjectProperty<EventHandler<ScrollToEvent<Integer>>> |
onScrollToProperty() |
Вызывается при запросе прокрутки индекса в видимую область с помощью scrollTo(int)
|
void |
refresh() |
Вызов refresh() заставляет элемент управления TreeView пересоздать и повторно заполнить ячейки, необходимые для заполнения визуальных границ элемента управления. |
final ObjectProperty<TreeItem<T>> |
rootProperty() |
Свойство, представляющее корневой узел TreeView. |
void |
scrollTo |
Прокручивает TreeView таким образом, что элемент в заданном индексе виден конечному пользователю. |
final ObjectProperty<MultipleSelectionModel<TreeItem<T>>> |
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, 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()
- Типы параметров:
-
T- тип экземпляров TreeItem, используемых в этом TreeView - Возвращает:
- Тип события, используемый для указания того, что событие редактирования было отменено.
editCommitEvent
public static <T> EventType<TreeView.EditEvent<T>> editCommitEvent()
- Type Parameters:
-
T- тип экземпляров TreeItem, используемых в этом TreeView - Returns:
- Тип события, указывающий на то, что в TreeView было завершено редактирование.
getNodeLevel
@Deprecated(since="8u20") public static int getNodeLevel(TreeItem<?> node)
getTreeItemLevel(TreeItem)
TreeItem.getParent(). Если у TreeItem нет родительского элемента, возвращаемое значение будет равно нулю. Каждый вызов getParent() увеличивает возвращаемое значение на единицу. Важно: Этот метод устарел, так как он не учитывает корневой узел. Это означает, что этот метод будет итерировать мимо корневого узла элемента управления TreeView, если у корневого узла есть родитель. Если это важно, используйте getTreeItemLevel(TreeItem) вместо этого.
- Parameters:
-
node- TreeItem, для которого требуется уровень. - Returns:
- Целое число, представляющее количество предков над заданным узлом, или -1, если заданный TreeItem равен null.
setCellFactory
public final void setCellFactory(Callback<TreeView<T>,TreeCell<T>> value)
См. документацию по классу Cell для получения более подробной информации.
- Parameters:
-
value-Callbackдля генерации экземпляров TreeCell, или null, если должна использоваться стандартная фабрика ячеек.
getCellFactory
public final Callback<TreeView<T>,TreeCell<T>> getCellFactory()
Возвращает фабрику ячеек, которая будет использоваться для создания TreeCells, которые используются для представления элементов в TreeView, или null, если пользовательская фабрика ячеек не была установлена.
- Returns:
- фабрика ячеек
cellFactoryProperty
public final ObjectProperty<Callback<TreeView<T>,TreeCell<T>>> cellFactoryProperty()
- Returns:
- свойство фабрики ячеек
- См. также:
setRoot
public final void setRoot(TreeItem<T> value)
TreeItem.- Parameters:
-
value-TreeItem, который будет помещён в корень TreeView.
getRoot
public final TreeItem<T> getRoot()
- Returns:
- Текущий корневой узел или null, если корневой узел не существует.
rootProperty
public final ObjectProperty<TreeItem<T>> rootProperty()
- Returns:
- свойство корневого узла
- См. также:
setShowRoot
public final void setShowRoot(boolean value)
TreeItem в данном TreeView.- Parameters:
-
value- Если true, корневой TreeItem будет отображаться, если false — скрываться.
isShowRoot
public final boolean isShowRoot()
- Returns:
- true, если корень TreeView должен отображаться
showRootProperty
public final BooleanProperty showRootProperty()
- Returns:
- свойство отображения корня
- См. также:
setSelectionModel
public final void setSelectionModel(MultipleSelectionModel<TreeItem<T>> value)
MultipleSelectionModel для использования в TreeView. Несмотря на то, что TreeView требует MultipleSelectionModel, можно настроить его для разрешения только единичного выбора (см. MultipleSelectionModel.setSelectionMode(javafx.scene.control.SelectionMode) для получения дополнительной информации).- Parameters:
-
value-MultipleSelectionModelдля использования
getSelectionModel
public final MultipleSelectionModel<TreeItem<T>> getSelectionModel()
- Returns:
- текущая установленная модель выбора
selectionModelProperty
public final ObjectProperty<MultipleSelectionModel<TreeItem<T>>> selectionModelProperty()
- Returns:
- свойство модели выбора
- См. также:
setFocusModel
public final void setFocusModel(FocusModel<TreeItem<T>> value)
FocusModel для использования в TreeView.- Parameters:
-
value-FocusModelдля использования
getFocusModel
public final FocusModel<TreeItem<T>> getFocusModel()
FocusModel.- Returns:
- текущая установленная
FocusModel
focusModelProperty
public final ObjectProperty<FocusModel<TreeItem<T>>> focusModelProperty()
- Returns:
- свойство модели фокуса
- См. также:
expandedItemCountProperty
public final ReadOnlyIntegerProperty expandedItemCountProperty()
Представляет количество узлов дерева, которые могут быть видны в TreeView. Это по существу счёт всех развернутых элементов дерева и их потомков.
Например, если виден только корневой узел, expandedItemCount будет равен одному. Если у корня было три дочерних узла и корень был развернут, значение будет равно четырём.
- Returns:
- свойство
expandedItemCount - Since:
- JavaFX 8.0
- См. также:
getExpandedItemCount
public final int getExpandedItemCount()
expandedItemCount.- Описание свойства:
-
Представляет количество узлов дерева, которые могут быть видны в TreeView. Это по существу счёт всех развернутых элементов дерева и их потомков.
Например, если виден только корневой узел, expandedItemCount будет равен одному. Если у корня было три дочерних узла и корень был развернут, значение будет равно четырём.
- Returns:
- значение свойства
expandedItemCount - Since:
- JavaFX 8.0
- См. также:
setFixedCellSize
public final void setFixedCellSize(double value)
- Parameters:
-
value- Новое значение фиксированного размера ячейки или значение меньше или равно нулю (или Region.USE_COMPUTED_SIZE) для отключения. - Since:
- JavaFX 8.0
getFixedCellSize
public final double getFixedCellSize()
- Returns:
- Двойное значение, представляющее фиксированный размер ячейки этого элемента управления, или значение меньше или равно нулю, если режим фиксированного размера ячейки отключён.
- Since:
- 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 имеет приоритет.
- Returns:
- свойство фиксированного размера ячейки
- Since:
- JavaFX 8.0
- See Also:
setEditable
public final void setEditable(boolean value)
editable.- Описание свойства:
- Указывает, является ли этот TreeView редактируемым - только если TreeView и TreeCells внутри него являются редактируемыми, TreeCell сможет перейти в состояние редактирования.
- Parameters:
-
value- значение для свойстваeditable - See Also:
isEditable
public final boolean isEditable()
editable.- Описание свойства:
- Указывает, является ли этот TreeView редактируемым - только если TreeView и TreeCells внутри него являются редактируемыми, TreeCell сможет перейти в состояние редактирования.
- Returns:
- значение свойства
editable - See Also:
editableProperty
public final BooleanProperty editableProperty()
- Returns:
- свойство редактируемости
- See Also:
getEditingItem
public final TreeItem<T> getEditingItem()
- Returns:
- TreeItem, который в настоящее время редактируется в TreeView
editingItemProperty
public final ReadOnlyObjectProperty<TreeItem<T>> editingItemProperty()
Свойство, используемое для представления TreeItem, который в настоящее время редактируется в TreeView, если редактирование происходит, или null, если ни один элемент не редактируется.
Невозможно установить элемент редактирования, вместо этого необходимо вызвать edit(javafx.scene.control.TreeItem).
- Returns:
- свойство элемента редактирования
- See Also:
setOnEditStart
public final void setOnEditStart(EventHandler<TreeView.EditEvent<T>> value)
EventHandler, который будет вызван при начале редактирования пользователем.- Parameters:
-
value- обработчик событийEventHandler, который будет вызван при начале редактирования пользователем
getOnEditStart
public final EventHandler<TreeView.EditEvent<T>> getOnEditStart()
EventHandler, который будет вызван при начале редактирования пользователем.- Returns:
- обработчик событий
EventHandlerпри начале редактирования пользователем
onEditStartProperty
public final ObjectProperty<EventHandler<TreeView.EditEvent<T>>> onEditStartProperty()
- Returns:
- обработчик событий при успешном начале редактирования пользователем
- See Also:
setOnEditCommit
public final void setOnEditCommit(EventHandler<TreeView.EditEvent<T>> value)
EventHandler, который будет вызван при подтверждении редактирования пользователем.- Parameters:
-
value- обработчик событийEventHandler, который будет вызван при подтверждении редактирования пользователем
getOnEditCommit
public final EventHandler<TreeView.EditEvent<T>> getOnEditCommit()
EventHandler, который будет вызван при подтверждении редактирования пользователем.- Returns:
- обработчик событий
EventHandler, который будет вызван при подтверждении редактирования пользователем
onEditCommitProperty
public final ObjectProperty<EventHandler<TreeView.EditEvent<T>>> onEditCommitProperty()
Это свойство используется, когда пользователь выполняет действие, которое должно привести к сохранению введённых данных.
Обработчик событий в этом свойстве не должен вызываться напрямую - вместо этого необходимо вызвать Cell.commitEdit(java.lang.Object) изнутри вашего пользовательского TreeCell. Это позволит вызвать этот событие, обновить представление и переключиться из состояния редактирования.
- Returns:
- обработчик событий, когда пользователь выполняет действие, которое приводит к сохранению его введённых данных
- See Also:
setOnEditCancel
public final void setOnEditCancel(EventHandler<TreeView.EditEvent<T>> value)
EventHandler, который будет вызван при отмене редактирования пользователем.- Parameters:
-
value- обработчик событийEventHandler, который будет вызван при отмене редактирования пользователем
getOnEditCancel
public final EventHandler<TreeView.EditEvent<T>> getOnEditCancel()
EventHandler, который будет вызван при отмене редактирования пользователем.- Returns:
- обработчик событий
EventHandler, который будет вызван при отмене редактирования пользователем
onEditCancelProperty
public final ObjectProperty<EventHandler<TreeView.EditEvent<T>>> onEditCancelProperty()
- Returns:
- обработчик событий, который будет вызван при отмене редактирования ячейки пользователем
- See Also:
edit
public void edit(TreeItem<T> item)
editable. После вызова этого метода, если текущий cell factory настроен для поддержки редактирования, ячейка изменит своё визуальное состояние, чтобы пользователь мог ввести данные.- Parameters:
-
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.