T
- The type of the item contained within the TreeItem
value
property for all tree items in this TreeView.@DefaultProperty(value="root") public class TreeView<T> extends Control
TreeItem
). By using a TreeView, it is possible to drill down into the
children of a TreeItem, recursively until a TreeItem has no children (that is,
it is a leaf node in the tree). To facilitate this, unlike controls
like ListView
, in TreeView it is necessary to only
specify the root
node.
For more information on building up a tree using this approach, refer to the
TreeItem
class documentation. Briefly however, to create a TreeView,
you should do something along the lines of the following:
TreeItem<String> root = new TreeItem<String>("Root Node");
root.setExpanded(true);
root.getChildren().addAll(
new TreeItem<String>("Item 1"),
new TreeItem<String>("Item 2"),
new TreeItem<String>("Item 3")
);
TreeView<String> treeView = new TreeView<String>(root);
A TreeView may be configured to optionally hide the root node by setting the
showRoot
property to false
. If the root
node is hidden, there is one less level of indentation, and all children
nodes of the root node are shown. By default, the root node is shown in the
TreeView.
To track selection and focus, it is necessary to become familiar with the
SelectionModel
and FocusModel
classes. A TreeView has at most
one instance of each of these classes, available from
selectionModel
and
focusModel
properties respectively.
Whilst it is possible to use this API to set a new selection model, in
most circumstances this is not necessary - the default selection and focus
models should work in most circumstances.
The default SelectionModel
used when instantiating a TreeView is
an implementation of the MultipleSelectionModel
abstract class.
However, as noted in the API documentation for
the selectionMode
property, the default value is SelectionMode.SINGLE
. To enable
multiple selection in a default TreeView instance, it is therefore necessary
to do the following:
treeView.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE);
The visuals of the TreeView can be entirely customized by replacing the
default cell factory
. A cell factory is used to
generate TreeCell
instances, which are used to represent an item in the
TreeView. See the Cell
class documentation for a more complete
description of how to write custom Cells.
This control supports inline editing of values, and this section attempts to give an overview of the available APIs and how you should use them.
Firstly, cell editing most commonly requires a different user interface
than when a cell is not being edited. This is the responsibility of the
Cell
implementation being used. For TreeView, this is the responsibility
of the cell factory
. It is your choice whether the cell is
permanently in an editing state (e.g. this is common for CheckBox
cells),
or to switch to a different UI when editing begins (e.g. when a double-click
is received on a cell).
To know when editing has been requested on a cell,
simply override the Cell.startEdit()
method, and
update the cell text
and
graphic
properties as
appropriate (e.g. set the text to null and set the graphic to be a
TextField
). Additionally, you should also override
Cell.cancelEdit()
to reset the UI back to its original visual state
when the editing concludes. In both cases it is important that you also
ensure that you call the super method to have the cell perform all duties it
must do to enter or exit its editing mode.
Once your cell is in an editing state, the next thing you are most probably
interested in is how to commit or cancel the editing that is taking place. This is your
responsibility as the cell factory provider. Your cell implementation will know
when the editing is over, based on the user input (e.g. when the user presses
the Enter or ESC keys on their keyboard). When this happens, it is your
responsibility to call Cell.commitEdit(Object)
or
Cell.cancelEdit()
, as appropriate.
When you call Cell.commitEdit(Object)
an event is fired to the
TreeView, which you can observe by adding an EventHandler
via
setOnEditCommit(javafx.event.EventHandler)
. Similarly,
you can also observe edit events for
edit start
and edit cancel
.
By default the TreeView edit commit handler is non-null, with a default
handler that attempts to overwrite the property value for the
item in the currently-being-edited row. It is able to do this as the
Cell.commitEdit(Object)
method is passed in the new value, and this
is passed along to the edit commit handler via the
TreeView.EditEvent
that is fired. It is simply a matter of calling
TreeView.EditEvent.getNewValue()
to retrieve this value.
It is very important to note that if you call
setOnEditCommit(javafx.event.EventHandler)
with your own
EventHandler
, then you will be removing the default handler. Unless
you then handle the writeback to the property (or the relevant data source),
nothing will happen. You can work around this by using the
Node.addEventHandler(javafx.event.EventType, javafx.event.EventHandler)
method to add a EDIT_COMMIT_EVENT
EventType
with
your desired EventHandler
as the second argument. Using this method,
you will not replace the default implementation, but you will be notified when
an edit commit has occurred.
Hopefully this summary answers some of the commonly asked questions. Fortunately, JavaFX ships with a number of pre-built cell factories that handle all the editing requirements on your behalf. You can find these pre-built cell factories in the javafx.scene.control.cell package.
Type | Property and Description |
---|---|
ObjectProperty<Callback<TreeView<T>,TreeCell<T>>> |
cellFactory
Represents the cell factory that will be used for creating TreeCells,
which are used to represent items in the TreeView.
|
BooleanProperty |
editable
Specifies whether this TreeView is editable - only if the TreeView and
the TreeCells within it are both editable will a TreeCell be able to go
into their editing state.
|
ReadOnlyObjectProperty<TreeItem<T>> |
editingItem
A property used to represent the TreeItem currently being edited
in the TreeView, if editing is taking place, or null if no item is being edited.
|
ReadOnlyIntegerProperty |
expandedItemCount
Represents the number of tree nodes presently able to be visible in the
TreeView.
|
DoubleProperty |
fixedCellSize
Specifies whether this control has cells that are a fixed height (of the
specified value).
|
ObjectProperty<FocusModel<TreeItem<T>>> |
focusModel
The FocusModel provides the API through which it is possible
to control focus on zero or one rows of the TreeView.
|
ObjectProperty<EventHandler<TreeView.EditEvent<T>>> |
onEditCancel
This event handler will be fired when the user cancels editing a cell.
|
ObjectProperty<EventHandler<TreeView.EditEvent<T>>> |
onEditCommit
This property is used when the user performs an action that should
result in their editing input being persisted.
|
ObjectProperty<EventHandler<TreeView.EditEvent<T>>> |
onEditStart
This event handler will be fired when the user successfully initiates
editing.
|
ObjectProperty<EventHandler<ScrollToEvent<Integer>>> |
onScrollTo
Called when there's a request to scroll an index into view using
scrollTo(int) |
ObjectProperty<TreeItem<T>> |
root
Property representing the root node of the TreeView.
|
ObjectProperty<MultipleSelectionModel<TreeItem<T>>> |
selectionModel
The SelectionModel provides the API through which it is possible
to select single or multiple items within a TreeView, as well as inspect
which rows have been selected by the user.
|
BooleanProperty |
showRoot
Property that represents whether or not the TreeView root node is visible.
|
contextMenu, skin, tooltip
background, border, cacheShape, centerShape, height, insets, maxHeight, maxWidth, minHeight, minWidth, opaqueInsets, padding, prefHeight, prefWidth, scaleShape, shape, snapToPixel, width
needsLayout
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
Modifier and Type | Class and Description |
---|---|
static class |
TreeView.EditEvent<T>
An
Event subclass used specifically in TreeView for representing
edit-related events. |
USE_COMPUTED_SIZE, USE_PREF_SIZE
BASELINE_OFFSET_SAME_AS_HEIGHT
Constructor and Description |
---|
TreeView()
Creates an empty TreeView.
|
TreeView(TreeItem<T> root)
Creates a TreeView with the provided root node.
|
Modifier and Type | Method and Description |
---|---|
ObjectProperty<Callback<TreeView<T>,TreeCell<T>>> |
cellFactoryProperty()
Represents the cell factory that will be used for creating TreeCells,
which are used to represent items in the TreeView.
|
protected Skin<?> |
createDefaultSkin()
Create a new instance of the default skin for this control.
|
void |
edit(TreeItem<T> item)
Instructs the TreeView to begin editing the given TreeItem, if
the TreeView is
editable . |
BooleanProperty |
editableProperty()
Specifies whether this TreeView is editable - only if the TreeView and
the TreeCells within it are both editable will a TreeCell be able to go
into their editing state.
|
static <T> EventType<TreeView.EditEvent<T>> |
editAnyEvent()
An EventType that indicates some edit event has occurred.
|
static <T> EventType<TreeView.EditEvent<T>> |
editCancelEvent()
An EventType used to indicate that an edit event has just been canceled
within the TreeView upon which the event was fired.
|
static <T> EventType<TreeView.EditEvent<T>> |
editCommitEvent()
An EventType that is used to indicate that an edit in a TreeView has been
committed.
|
ReadOnlyObjectProperty<TreeItem<T>> |
editingItemProperty()
A property used to represent the TreeItem currently being edited
in the TreeView, if editing is taking place, or null if no item is being edited.
|
static <T> EventType<TreeView.EditEvent<T>> |
editStartEvent()
An EventType used to indicate that an edit event has started within the
TreeView upon which the event was fired.
|
ReadOnlyIntegerProperty |
expandedItemCountProperty()
Represents the number of tree nodes presently able to be visible in the
TreeView.
|
DoubleProperty |
fixedCellSizeProperty()
Specifies whether this control has cells that are a fixed height (of the
specified value).
|
ObjectProperty<FocusModel<TreeItem<T>>> |
focusModelProperty()
The FocusModel provides the API through which it is possible
to control focus on zero or one rows of the TreeView.
|
Callback<TreeView<T>,TreeCell<T>> |
getCellFactory()
Returns the cell factory that will be used for creating TreeCells,
which are used to represent items in the TreeView, or null if no custom
cell factory has been set.
|
static List<CssMetaData<? extends Styleable,?>> |
getClassCssMetaData() |
List<CssMetaData<? extends Styleable,?>> |
getControlCssMetaData() |
TreeItem<T> |
getEditingItem()
Returns the TreeItem that is currently being edited in the TreeView,
or null if no item is being edited.
|
int |
getExpandedItemCount()
Gets the value of the property expandedItemCount.
|
double |
getFixedCellSize()
Returns the fixed cell size value.
|
FocusModel<TreeItem<T>> |
getFocusModel()
Returns the currently installed
FocusModel . |
static int |
getNodeLevel(TreeItem<?> node)
Deprecated.
This method does not correctly calculate the distance from the
given TreeItem to the root of the TreeView. As of JavaFX 8.0_20,
the proper way to do this is via
getTreeItemLevel(TreeItem) |
EventHandler<TreeView.EditEvent<T>> |
getOnEditCancel()
Returns the
EventHandler that will be called when the user cancels
an edit. |
EventHandler<TreeView.EditEvent<T>> |
getOnEditCommit()
Returns the
EventHandler that will be called when the user commits
an edit. |
EventHandler<TreeView.EditEvent<T>> |
getOnEditStart()
Returns the
EventHandler that will be called when the user begins
an edit. |
EventHandler<ScrollToEvent<Integer>> |
getOnScrollTo()
Gets the value of the property onScrollTo.
|
TreeItem<T> |
getRoot()
Returns the current root node of this TreeView, or null if no root node
is specified.
|
int |
getRow(TreeItem<T> item)
Returns the index position of the given TreeItem, assuming that it is
currently accessible through the tree hierarchy (most notably, that all
parent tree items are expanded).
|
MultipleSelectionModel<TreeItem<T>> |
getSelectionModel()
Returns the currently installed selection model.
|
TreeItem<T> |
getTreeItem(int row)
Returns the TreeItem in the given index, or null if it is out of bounds.
|
int |
getTreeItemLevel(TreeItem<?> node)
Returns the number of levels of 'indentation' of the given TreeItem,
based on how many times getParent() can be recursively called.
|
boolean |
isEditable()
Gets the value of the property editable.
|
boolean |
isShowRoot()
Returns true if the root of the TreeView should be shown, and false if
it should not.
|
protected void |
layoutChildren()
Invoked during the layout pass to layout the children in this
Parent . |
ObjectProperty<EventHandler<TreeView.EditEvent<T>>> |
onEditCancelProperty()
This event handler will be fired when the user cancels editing a cell.
|
ObjectProperty<EventHandler<TreeView.EditEvent<T>>> |
onEditCommitProperty()
This property is used when the user performs an action that should
result in their editing input being persisted.
|
ObjectProperty<EventHandler<TreeView.EditEvent<T>>> |
onEditStartProperty()
This event handler will be fired when the user successfully initiates
editing.
|
ObjectProperty<EventHandler<ScrollToEvent<Integer>>> |
onScrollToProperty()
Called when there's a request to scroll an index into view using
scrollTo(int) |
Object |
queryAccessibleAttribute(AccessibleAttribute attribute,
Object... parameters)
*
Accessibility handling *
*
|
void |
refresh()
Calling
refresh() forces the TreeView control to recreate and
repopulate the cells necessary to populate the visual bounds of the control. |
ObjectProperty<TreeItem<T>> |
rootProperty()
Property representing the root node of the TreeView.
|
void |
scrollTo(int index)
Scrolls the TreeView such that the item in the given index is visible to
the end user.
|
ObjectProperty<MultipleSelectionModel<TreeItem<T>>> |
selectionModelProperty()
The SelectionModel provides the API through which it is possible
to select single or multiple items within a TreeView, as well as inspect
which rows have been selected by the user.
|
void |
setCellFactory(Callback<TreeView<T>,TreeCell<T>> value)
Sets the cell factory that will be used for creating TreeCells,
which are used to represent items in the
TreeView.
|
void |
setEditable(boolean value)
Sets the value of the property editable.
|
void |
setFixedCellSize(double value)
Sets the new fixed cell size for this control.
|
void |
setFocusModel(FocusModel<TreeItem<T>> value)
Sets the
FocusModel to be used in the TreeView. |
void |
setOnEditCancel(EventHandler<TreeView.EditEvent<T>> value)
Sets the
EventHandler that will be called when the user cancels
an edit. |
void |
setOnEditCommit(EventHandler<TreeView.EditEvent<T>> value)
Sets the
EventHandler that will be called when the user commits
an edit. |
void |
setOnEditStart(EventHandler<TreeView.EditEvent<T>> value)
Sets the
EventHandler that will be called when the user begins
an edit. |
void |
setOnScrollTo(EventHandler<ScrollToEvent<Integer>> value)
Sets the value of the property onScrollTo.
|
void |
setRoot(TreeItem<T> value)
Sets the root node in this TreeView.
|
void |
setSelectionModel(MultipleSelectionModel<TreeItem<T>> value)
Sets the
MultipleSelectionModel to be used in the TreeView. |
void |
setShowRoot(boolean value)
Specifies whether the root
TreeItem should be shown within this
TreeView. |
BooleanProperty |
showRootProperty()
Property that represents whether or not the TreeView root node is visible.
|
computeMaxHeight, computeMaxWidth, computeMinHeight, computeMinWidth, computePrefHeight, computePrefWidth, contextMenuProperty, executeAccessibleAction, getBaselineOffset, getContextMenu, getCssMetaData, getSkin, getTooltip, isResizable, setContextMenu, setSkin, setTooltip, skinProperty, tooltipProperty
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
getChildren, getChildrenUnmodifiable, getManagedChildren, getStylesheets, isNeedsLayout, layout, lookup, needsLayoutProperty, requestLayout, requestParentLayout, setNeedsLayout, updateBounds
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, getContentBias, 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, toString, translateXProperty, translateYProperty, translateZProperty, usesMirroring, visibleProperty
public final ObjectProperty<Callback<TreeView<T>,TreeCell<T>>> cellFactoryProperty
public final ObjectProperty<TreeItem<T>> rootProperty
getRoot()
,
setRoot(TreeItem)
public final BooleanProperty showRootProperty
isShowRoot()
,
setShowRoot(boolean)
public final ObjectProperty<MultipleSelectionModel<TreeItem<T>>> selectionModelProperty
public final ObjectProperty<FocusModel<TreeItem<T>>> focusModelProperty
getFocusModel()
,
setFocusModel(FocusModel)
public final ReadOnlyIntegerProperty expandedItemCountProperty
Represents the number of tree nodes presently able to be visible in the TreeView. This is essentially the count of all expanded tree items, and their children.
For example, if just the root node is visible, the expandedItemCount will be one. If the root had three children and the root was expanded, the value will be four.
getExpandedItemCount()
public final DoubleProperty fixedCellSizeProperty
To set this property via CSS, use the -fx-fixed-cell-size property. This should not be confused with the -fx-cell-size property. The difference between these two CSS properties is that -fx-cell-size will size all cells to the specified size, but it will not enforce that this is the only size (thus allowing for variable cell sizes, and preventing the performance gains from being possible). Therefore, when performance matters use -fx-fixed-cell-size, instead of -fx-cell-size. If both properties are specified in CSS, -fx-fixed-cell-size takes precedence.
getFixedCellSize()
,
setFixedCellSize(double)
public final BooleanProperty editableProperty
isEditable()
,
setEditable(boolean)
public final ReadOnlyObjectProperty<TreeItem<T>> editingItemProperty
A property used to represent the TreeItem currently being edited in the TreeView, if editing is taking place, or null if no item is being edited.
It is not possible to set the editing item, instead it is required that
you call edit(javafx.scene.control.TreeItem)
.
getEditingItem()
public final ObjectProperty<EventHandler<TreeView.EditEvent<T>>> onEditStartProperty
getOnEditStart()
,
setOnEditStart(EventHandler)
public final ObjectProperty<EventHandler<TreeView.EditEvent<T>>> onEditCommitProperty
This property is used when the user performs an action that should result in their editing input being persisted.
The EventHandler in this property should not be called directly -
instead call TreeCell.commitEdit(java.lang.Object)
from within
your custom TreeCell. This will handle firing this event, updating the
view, and switching out of the editing state.
getOnEditCommit()
,
setOnEditCommit(EventHandler)
public final ObjectProperty<EventHandler<TreeView.EditEvent<T>>> onEditCancelProperty
getOnEditCancel()
,
setOnEditCancel(EventHandler)
public ObjectProperty<EventHandler<ScrollToEvent<Integer>>> onScrollToProperty
scrollTo(int)
getOnScrollTo()
,
setOnScrollTo(EventHandler)
public TreeView()
Refer to the TreeView
class documentation for details on the
default state of other properties.
public static <T> EventType<TreeView.EditEvent<T>> editAnyEvent()
editStartEvent()
,
editCommitEvent()
and editCancelEvent()
.public static <T> EventType<TreeView.EditEvent<T>> editStartEvent()
public static <T> EventType<TreeView.EditEvent<T>> editCancelEvent()
public static <T> EventType<TreeView.EditEvent<T>> editCommitEvent()
@Deprecated public static int getNodeLevel(TreeItem<?> node)
getTreeItemLevel(TreeItem)
TreeItem.getParent()
can be recursively called. If the TreeItem does not have any parent set,
the returned value will be zero. For each time getParent() is recursively
called, the returned value is incremented by one.
Important note: This method is deprecated as it does
not consider the root node. This means that this method will iterate
past the root node of the TreeView control, if the root node has a parent.
If this is important, call getTreeItemLevel(TreeItem)
instead.
node
- The TreeItem for which the level is needed.public final void setCellFactory(Callback<TreeView<T>,TreeCell<T>> value)
Refer to the Cell
class documentation for more details.
value
- The Callback
to use for generating TreeCell instances,
or null if the default cell factory should be used.public final Callback<TreeView<T>,TreeCell<T>> getCellFactory()
Returns the cell factory that will be used for creating TreeCells, which are used to represent items in the TreeView, or null if no custom cell factory has been set.
public final ObjectProperty<Callback<TreeView<T>,TreeCell<T>>> cellFactoryProperty()
public final void setRoot(TreeItem<T> value)
TreeItem
class level
documentation for more details.value
- The TreeItem
that will be placed at the root of the
TreeView.public final TreeItem<T> getRoot()
public final ObjectProperty<TreeItem<T>> rootProperty()
getRoot()
,
setRoot(TreeItem)
public final void setShowRoot(boolean value)
TreeItem
should be shown within this
TreeView.value
- If true, the root TreeItem will be shown, and if false it
will be hidden.public final boolean isShowRoot()
public final BooleanProperty showRootProperty()
isShowRoot()
,
setShowRoot(boolean)
public final void setSelectionModel(MultipleSelectionModel<TreeItem<T>> value)
MultipleSelectionModel
to be used in the TreeView.
Despite a TreeView requiring a MultipleSelectionModel
,
it is possible to configure it to only allow single selection (see
MultipleSelectionModel.setSelectionMode(javafx.scene.control.SelectionMode)
for more information).public final MultipleSelectionModel<TreeItem<T>> getSelectionModel()
public final ObjectProperty<MultipleSelectionModel<TreeItem<T>>> selectionModelProperty()
public final void setFocusModel(FocusModel<TreeItem<T>> value)
FocusModel
to be used in the TreeView.public final FocusModel<TreeItem<T>> getFocusModel()
FocusModel
.public final ObjectProperty<FocusModel<TreeItem<T>>> focusModelProperty()
getFocusModel()
,
setFocusModel(FocusModel)
public final ReadOnlyIntegerProperty expandedItemCountProperty()
Represents the number of tree nodes presently able to be visible in the TreeView. This is essentially the count of all expanded tree items, and their children.
For example, if just the root node is visible, the expandedItemCount will be one. If the root had three children and the root was expanded, the value will be four.
getExpandedItemCount()
public final int getExpandedItemCount()
Represents the number of tree nodes presently able to be visible in the TreeView. This is essentially the count of all expanded tree items, and their children.
For example, if just the root node is visible, the expandedItemCount will be one. If the root had three children and the root was expanded, the value will be four.
public final void setFixedCellSize(double value)
value
- The new fixed cell size value, or a value less than or equal
to zero (or Region.USE_COMPUTED_SIZE) to disable.public final double getFixedCellSize()
public final DoubleProperty fixedCellSizeProperty()
To set this property via CSS, use the -fx-fixed-cell-size property. This should not be confused with the -fx-cell-size property. The difference between these two CSS properties is that -fx-cell-size will size all cells to the specified size, but it will not enforce that this is the only size (thus allowing for variable cell sizes, and preventing the performance gains from being possible). Therefore, when performance matters use -fx-fixed-cell-size, instead of -fx-cell-size. If both properties are specified in CSS, -fx-fixed-cell-size takes precedence.
getFixedCellSize()
,
setFixedCellSize(double)
public final void setEditable(boolean value)
public final boolean isEditable()
public final BooleanProperty editableProperty()
isEditable()
,
setEditable(boolean)
public final TreeItem<T> getEditingItem()
public final ReadOnlyObjectProperty<TreeItem<T>> editingItemProperty()
A property used to represent the TreeItem currently being edited in the TreeView, if editing is taking place, or null if no item is being edited.
It is not possible to set the editing item, instead it is required that
you call edit(javafx.scene.control.TreeItem)
.
getEditingItem()
public final void setOnEditStart(EventHandler<TreeView.EditEvent<T>> value)
EventHandler
that will be called when the user begins
an edit.public final EventHandler<TreeView.EditEvent<T>> getOnEditStart()
EventHandler
that will be called when the user begins
an edit.public final ObjectProperty<EventHandler<TreeView.EditEvent<T>>> onEditStartProperty()
getOnEditStart()
,
setOnEditStart(EventHandler)
public final void setOnEditCommit(EventHandler<TreeView.EditEvent<T>> value)
EventHandler
that will be called when the user commits
an edit.public final EventHandler<TreeView.EditEvent<T>> getOnEditCommit()
EventHandler
that will be called when the user commits
an edit.public final ObjectProperty<EventHandler<TreeView.EditEvent<T>>> onEditCommitProperty()
This property is used when the user performs an action that should result in their editing input being persisted.
The EventHandler in this property should not be called directly -
instead call TreeCell.commitEdit(java.lang.Object)
from within
your custom TreeCell. This will handle firing this event, updating the
view, and switching out of the editing state.
getOnEditCommit()
,
setOnEditCommit(EventHandler)
public final void setOnEditCancel(EventHandler<TreeView.EditEvent<T>> value)
EventHandler
that will be called when the user cancels
an edit.public final EventHandler<TreeView.EditEvent<T>> getOnEditCancel()
EventHandler
that will be called when the user cancels
an edit.public final ObjectProperty<EventHandler<TreeView.EditEvent<T>>> onEditCancelProperty()
getOnEditCancel()
,
setOnEditCancel(EventHandler)
protected void layoutChildren()
Parent
. By default it will only set the size of managed,
resizable content to their preferred sizes and does not do any node
positioning.
Subclasses should override this function to layout content as needed.
layoutChildren
in class Control
public void edit(TreeItem<T> item)
editable
. Once
this method is called, if the current
cell factory
is set up to support editing,
the Cell will switch its visual state to enable the user input to take place.item
- The TreeItem in the TreeView that should be edited.public void scrollTo(int index)
index
- The index that should be made visible to the user, assuming
of course that it is greater than, or equal to 0, and less than the
number of the visible items in the TreeView.public void setOnScrollTo(EventHandler<ScrollToEvent<Integer>> value)
scrollTo(int)
public EventHandler<ScrollToEvent<Integer>> getOnScrollTo()
scrollTo(int)
public ObjectProperty<EventHandler<ScrollToEvent<Integer>>> onScrollToProperty()
scrollTo(int)
getOnScrollTo()
,
setOnScrollTo(EventHandler)
public int getRow(TreeItem<T> item)
item
- The TreeItem for which the index is sought.public TreeItem<T> getTreeItem(int row)
row
- The index of the TreeItem being sought.public int getTreeItemLevel(TreeItem<?> node)
node
- The TreeItem for which the level is needed.protected Skin<?> createDefaultSkin()
-fx-skin
or set explicitly in a sub-class with setSkin(...)
.createDefaultSkin
in class Control
public void refresh()
refresh()
forces the TreeView control to recreate and
repopulate the cells necessary to populate the visual bounds of the control.
In other words, this forces the TreeView to update what it is showing to
the user. This is useful in cases where the underlying data source has
changed in a way that is not observed by the TreeView itself.public static List<CssMetaData<? extends Styleable,?>> getClassCssMetaData()
public List<CssMetaData<? extends Styleable,?>> getControlCssMetaData()
getControlCssMetaData
in class Control
public Object queryAccessibleAttribute(AccessibleAttribute attribute, Object... parameters)
queryAccessibleAttribute
in class Control
attribute
- the requested attributeparameters
- optional list of parametersAccessibleAttribute
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 2008, 2017, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.