Spec-Zone .ru
спецификации, руководства, описания, API
|
T
- Тип value
свойство в пределах TreeItem.public class TreeItem<T> extends java.lang.Object implements EventTarget
Модель позволяет регистрацию слушателей, которые будут уведомлены как число изменений элементов, их позиции или если сами значения изменяются. Отметьте однако, что TreeItem не является Узел, и поэтому никакие визуальные события не будут запущены в TreeItem. Чтобы получить эти события, необходимо добавить, соответствующие наблюдатели к экземплярам TreeCell (через пользовательскую фабрику ячейки - см. Cell
Документация class для большего количества деталей).
В самом простом случае экземпляры TreeItem могут быть созданы в памяти как таковой:
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);
Этот подход работает хорошо на простые древовидные структуры, или когда данные не являются чрезмерными (так, чтобы это могло легко уместиться в памяти). В ситуациях, где размер древовидной структуры неизвестен (и поэтому потенциально огромен), есть опция создания экземпляров TreeItem по требованию эффективным памятью способом. Чтобы демонстрировать это, код ниже создает браузер файловой системы:
private TreeView buildFileSystemBrowser() {
TreeItem<File> root = createNode(new File("/"));
return new TreeView<File>(root);
}
// This method creates a TreeItem to represent the given File. It does this
// by overriding the TreeItem.getChildren() and TreeItem.isLeaf() methods
// anonymously, but this could be better abstracted by creating a
// 'FileTreeItem' subclass of TreeItem. However, this is left as an exercise
// for the reader.
private TreeItem<File> createNode(final File f) {
return new TreeItem<File>(f) {
// We cache whether the File is a leaf or not. A File is a leaf if
// it is not a directory and does not have any files contained within
// it. We cache this as isLeaf() is called often, and doing the
// actual check on File is expensive.
private boolean isLeaf;
// We do the children and leaf testing only once, and then set these
// booleans to false so that we do not check again during this
// run. A more complete implementation may need to handle more
// dynamic file system situations (such as where a folder has files
// added after the TreeView is shown). Again, this is left as an
// exercise for the reader.
private boolean isFirstTimeChildren = true;
private boolean isFirstTimeLeaf = true;
@Override public ObservableList<TreeItem<File>> getChildren() {
if (isFirstTimeChildren) {
isFirstTimeChildren = false;
// First getChildren() call, so we actually go off and
// determine the children of the File contained in this TreeItem.
super.getChildren().setAll(buildChildren(this));
}
return super.getChildren();
}
@Override public boolean isLeaf() {
if (isFirstTimeLeaf) {
isFirstTimeLeaf = false;
File f = (File) getValue();
isLeaf = f.isFile();
}
return isLeaf;
}
private ObservableList<TreeItem<File>> buildChildren(TreeItem<File> TreeItem) {
File f = TreeItem.getValue();
if (f != null && f.isDirectory()) {
File[] files = f.listFiles();
if (files != null) {
ObservableList<TreeItem<File>> children = FXCollections.observableArrayList();
for (File childFile : files) {
children.add(createNode(childFile));
}
return children;
}
}
return FXCollections.emptyObservableList();
}
};
}
События TreeItem
TreeItem поддерживает то же самое понятие распространения событий как в другом месте в scenegraph. Это означает, что не необходимо прислушаться к событиям на всем TreeItems (и это, конечно, не поощряется!). Лучшее, и гораздо больше дешевого решения должно вместо этого присоединить слушателей события TreeView root
элемент. Пока есть путь между тем, где событие имеет место и корневой TreeItem, событие будет пузыриться к корневому элементу.
Важно отметить однако, что TreeItem не является Узел, что означает, что только типы события, определенные в TreeItem, будут поставлены. Чтобы слушать общие события (например взаимодействия мыши), необходимо добавить необходимых слушателей cells
содержавший в пределах TreeView (обеспечивая a cell factory
).
TreeItem class определяет много событий с определенной иерархией. Их показывают ниже (следуйте за ссылками, чтобы узнать больше о каждом типе события):
TreeItem.treeNotificationEvent()
TreeItem.valueChangedEvent()
TreeItem.graphicChangedEvent()
TreeItem.treeItemCountChangeEvent()
Добавление отступа, показанное выше, показывает отношение между типами события. Например, все типы события TreeItem имеют treeNotificationEvent()
как их родительский тип события, и ответвление expand
/ collapse
типы события - оба treeNotificationEvent()
. По причинам производительности это поощряется слушать только события, которые Вы должны слушать. Это означает, что поощряется, что лучше слушать, например, TreeItem.valueChangedEvent()
, а не TreeItem.treeNotificationEvent()
.
Ввести | Свойство и Описание |
---|---|
BooleanProperty |
расширенный
Расширенное состояние этого TreeItem.
|
ObjectProperty<Node> |
графический
Узел, который обычно показывают налево от свойства значения.
|
ReadOnlyBooleanProperty |
лист
Представляет листовое свойство TreeItem, которое является истиной, если у TreeItem нет никаких дочерних элементов.
|
ReadOnlyObjectProperty<TreeItem<T>> |
родитель
Свойство, которое представляет родителя этого TreeItem.
|
ObjectProperty<T> |
значение
Свойство, представляющее специализированные данные, содержится в пределах этого TreeItem.
|
Модификатор и Тип | Класс и Описание |
---|---|
static class |
TreeItem.TreeModificationEvent<T>
Event это содержит релевантную информацию для всех форм модификаций TreeItem. |
Конструктор и Описание |
---|
TreeItem()
Создает пустой TreeItem.
|
TreeItem(T value)
Создает TreeItem с набором свойств значения к обеспеченному объекту.
|
TreeItem(T value, Node graphic)
Создает TreeItem с набором свойств значения к обеспеченному объекту, и графическим набором к обеспеченному Узлу.
|
Модификатор и Тип | Метод и Описание |
---|---|
<E extends Event> |
addEventHandler(EventType<E> eventType, EventHandler<E> eventHandler)
Регистрирует обработчик событий к этому TreeItem.
|
static <T> EventType<TreeItem.TreeModificationEvent<T>> |
branchCollapsedEvent()
EventType использовал, когда TreeItem получает модификацию к своему расширенному свойству, так, что TreeItem находится теперь в свернутом состоянии.
|
static <T> EventType<TreeItem.TreeModificationEvent<T>> |
branchExpandedEvent()
EventType использовал, когда TreeItem получает модификацию к своему расширенному свойству, так, что TreeItem находится теперь в расширенном состоянии.
|
EventDispatchChain |
buildEventDispatchChain(EventDispatchChain tail)
Конструкция событие диспетчеризирует цепочку для этой цели.
|
static <T> EventType<TreeItem.TreeModificationEvent<T>> |
childrenModificationEvent()
EventType использовал, когда TreeItem получает прямую модификацию к своему дочернему списку.
|
static <T> EventType<TreeItem.TreeModificationEvent<T>> |
expandedItemCountChangeEvent()
Генерал Эвенттайп использовал, когда TreeItem получает модификацию, которая приводит к числу дочерних элементов, являющихся видимыми изменениями.
|
BooleanProperty |
expandedProperty()
Расширенное состояние этого TreeItem.
|
ObservableList<TreeItem<T>> |
getChildren()
Дочерние элементы этого TreeItem.
|
Узел |
getGraphic()
Возвращает узел, который обычно показывают налево от свойства значения.
|
TreeItem<T> |
getParent()
Родитель этого TreeItem.
|
T |
getValue()
Возвращает специализированные данные, представленные этим TreeItem.
|
static <T> EventType<TreeItem.TreeModificationEvent<T>> |
graphicChangedEvent()
EventType использовал, когда TreeItem получает модификацию к своему графическому свойству.
|
ObjectProperty<Node> |
graphicProperty()
Узел, который обычно показывают налево от свойства значения.
|
boolean |
isExpanded()
Возвращает расширенное состояние этого TreeItem.
|
boolean |
isLeaf()
TreeItem является листом, если у него нет никаких дочерних элементов.
|
ReadOnlyBooleanProperty |
leafProperty()
Представляет листовое свойство TreeItem, которое является истиной, если у TreeItem нет никаких дочерних элементов.
|
TreeItem<T> |
nextSibling()
Возвращает следующий одноуровневый элемент TreeItem.
|
TreeItem<T> |
nextSibling(TreeItem<T> afterNode)
Возвращает следующий одноуровневый элемент после данного узла.
|
ReadOnlyObjectProperty<TreeItem<T>> |
parentProperty()
Свойство, которое представляет родителя этого TreeItem.
|
TreeItem<T> |
previousSibling()
Возвращает предыдущий одноуровневый элемент TreeItem.
|
TreeItem<T> |
previousSibling(TreeItem<T> beforeNode)
Возвращает предыдущий одноуровневый элемент после данного узла.
|
<E extends Event> |
removeEventHandler(EventType<E> eventType, EventHandler<E> eventHandler)
Нерегистрирует ранее зарегистрированный обработчик событий от этого TreeItem.
|
void |
setExpanded(boolean value)
Устанавливает расширенное состояние этого TreeItem.
|
void |
setGraphic(Node value)
Устанавливает узел, который обычно показывают налево от свойства значения.
|
void |
setValue(T value)
Устанавливает специализированные данные, представленные этим TreeItem.
|
java.lang.String |
toString()
Возвращает строковое представление этого
TreeItem объект. |
static <T> EventType<TreeItem.TreeModificationEvent<T>> |
treeNotificationEvent()
Основной EventType имел обыкновение указывать, что событие имело место в пределах TreeItem.
|
static <T> EventType<TreeItem.TreeModificationEvent<T>> |
valueChangedEvent()
EventType использовал, когда TreeItem получает модификацию к своему свойству значения.
|
ObjectProperty<T> |
valueProperty()
Свойство, представляющее специализированные данные, содержится в пределах этого TreeItem.
|
public final ObjectProperty<T> valueProperty
public final ObjectProperty<Узел> graphicProperty
getGraphic()
, setGraphic(Node)
public final BooleanProperty expandedProperty
isExpanded()
, setExpanded(boolean)
public final ReadOnlyBooleanProperty leafProperty
isLeaf()
public final ReadOnlyObjectProperty<TreeItem<T>> parentProperty
getParent()
public TreeItem()
public TreeItem(T value)
value
- Объект, который будет сохранен как значение этого TreeItem.public TreeItem(T value, Node graphic)
value
- Объект, который будет сохранен как значение этого TreeItem.graphic
- Узел, чтобы показать в TreeView рядом с этим TreeItem.public static <T> EventType<TreeItem.TreeModificationEvent<T>> treeNotificationEvent()
T
- Тип значения содержится в пределах TreeItem.public static <T> EventType<TreeItem.TreeModificationEvent<T>> expandedItemCountChangeEvent()
branchExpandedEvent()
, branchCollapsedEvent()
и childrenModificationEvent()
для трех подтипов).T
- Тип значения содержится в пределах TreeItem.public static <T> EventType<TreeItem.TreeModificationEvent<T>> branchExpandedEvent()
T
- Тип значения содержится в пределах TreeItem.public static <T> EventType<TreeItem.TreeModificationEvent<T>> branchCollapsedEvent()
T
- Тип значения содержится в пределах TreeItem.public static <T> EventType<TreeItem.TreeModificationEvent<T>> childrenModificationEvent()
T
- Тип значения содержится в пределах TreeItem.public static <T> EventType<TreeItem.TreeModificationEvent<T>> valueChangedEvent()
T
- Тип значения содержится в пределах TreeItem.public static <T> EventType<TreeItem.TreeModificationEvent<T>> graphicChangedEvent()
T
- Тип значения содержится в пределах TreeItem.public final void setValue(T value)
public final T getValue()
public final ObjectProperty<T> valueProperty()
public final void setGraphic(Node value)
value
- Графический узел, который будет выведен на экран пользователю.public final Узел getGraphic()
public final ObjectProperty<Узел> graphicProperty()
getGraphic()
, setGraphic(Node)
public final void setExpanded(boolean value)
value
- Если у этого TreeItem есть дочерние элементы, вызывая setExpanded с true
приведет к дочерним элементам, становящимся видимым. Вызов setExpanded с false
скроет любые дочерние элементы, принадлежащие TreeItem.public final boolean isExpanded()
public final BooleanProperty expandedProperty()
isExpanded()
, setExpanded(boolean)
public boolean isLeaf()
public final ReadOnlyBooleanProperty leafProperty()
isLeaf()
public final TreeItem<T> getParent()
public final ReadOnlyObjectProperty<TreeItem<T>> parentProperty()
getParent()
public ObservableList<TreeItem<T>> getChildren()
public TreeItem<T> previousSibling()
public TreeItem<T> previousSibling(TreeItem<T> beforeNode)
beforeNode
- TreeItem, который разыскивается предыдущий одноуровневый элемент.public TreeItem<T> nextSibling()
public TreeItem<T> nextSibling(TreeItem<T> afterNode)
afterNode
- TreeItem, который разыскивается следующий одноуровневый элемент.public java.lang.String toString()
TreeItem
объект.toString
в class java.lang.Object
TreeItem
объект.public EventDispatchChain buildEventDispatchChain(EventDispatchChain tail)
EventTarget
. Эта цель события автоматически не добавляется к цепочке, так, если это хочет обработать события, это должно добавить EventDispatcher
для себя к цепочке. В случае цель события является частью некоторой иерархии, цепочка для этого обычно создается от диспетчеров события, забранных у корня иерархии к цели события.
Событие диспетчеризирует цепочку, создается модификациями к обеспеченному начальному событию, диспетчеризируют цепочку. У возвращенной цепочки должна быть начальная цепочка в ее конце, таким образом, диспетчеры должны предварительно ожидаться к начальной цепочке.
Вызывающая сторона не должна предположить, что начальная цепочка остается неизменной, ни что возвращенное значение сошлется на различную цепочку.
buildEventDispatchChain
в интерфейсе EventTarget
tail
- начальная цепочка, чтобы создать изpublic <E extends Event> void addEventHandler(EventType<E> eventType, EventHandler<E> eventHandler)
Cell
Документация class для большего количества деталей).eventType
- тип событий, чтобы получить обработчикомeventHandler
- обработчик, чтобы зарегистрироватьсяjava.lang.NullPointerException
- если тип события или обработчик являются нулемpublic <E extends Event> void removeEventHandler(EventType<E> eventType, EventHandler<E> eventHandler)
eventType
- тип события, от которого можно незарегистрироватьсяeventHandler
- обработчик, чтобы незарегистрироватьсяjava.lang.NullPointerException
- если тип события или обработчик являются нулемCopyright (c) 2008, 2013, Oracle и/или его филиалы. Все права защищены. Использование подвергается