Spec-Zone.ru › OpenJavaFX 17

Класс ListView<T>

java.lang.Object
javafx.scene.Node
javafx.scene.Parent
javafx.scene.layout.Region
javafx.scene.control.Control
javafx.scene.control.ListView<T>
Параметры типа:
T - Этот тип используется для представления типа объектов, хранящихся в ListViews items ObservableList. Он также используется в selection model и focus model.
Все реализуемые интерфейсы:
Styleable, EventTarget, Skinnable
@DefaultProperty("items")
public class ListView<T>
extends Control
ListView отображает горизонтальный или вертикальный список элементов, из которых пользователь может выбирать или с которыми пользователь может взаимодействовать. ListView может иметь свой тип дженерика, представляющий тип данных в базовой модели. Это обеспечивает безопасность типов для различных методов в ListView, а также для поддерживающих классов (упомянутых ниже). Кроме того, использование дженерика значительно упрощает разработку приложений, использующих ListView, поскольку все современные IDE могут значительно успешнее выполнять автодополнение с дополнительной информацией о типе.

Заполнение ListView

Здесь показан простой пример создания и заполнения ListView имен (строк):

 ObservableList<String> names = FXCollections.observableArrayList(
          "Julia", "Ian", "Sue", "Matthew", "Hannah", "Stephan", "Denise");
 ListView<String> listView = new ListView<String>(names);

Элементы ListView содержатся в items ObservableList. Этот ObservableList автоматически наблюдается ListView, поэтому любые изменения, происходящие внутри ObservableList, будут автоматически отображаться в самом ListView. Если передача ObservableList в конструктор ListView невозможна, рекомендуемый подход к установке элементов — просто вызвать:

 ObservableList<T> content = ...
 listView.setItems(content);
Image of the ListView control

Конечный результат, как отмечалось выше, состоит в том, что ListView автоматически обновляет представление, чтобы отразить элементы в списке.

Другой подход, хотя и приемлемый для ListView, не является рекомендуемым:

 List<T> content = ...
 getItems().setAll(content);
Проблема с показанным выше подходом заключается в том, что содержимое списка копируется в список элементов, что означает, что последующие изменения в списке содержимого не наблюдаются и не будут визуально отображаться в ListView.

API выбора/фокусировки ListView

Для отслеживания выбора и фокусировки необходимо ознакомиться с классами SelectionModel и FocusModel. ListView имеет не более одной экземпляра каждого из этих классов, доступных соответственно из свойств selectionModel и focusModel. Хотя возможно использовать этот API для установки новой модели выбора, в большинстве случаев это не требуется — модель выбора и фокуса по умолчанию должна работать в большинстве случаев.

Модель выбора SelectionModel по умолчанию, используемая при создании ListView, является реализацией абстрактного класса MultipleSelectionModel. Однако, как отмечается в документации API для свойства selectionMode, значение по умолчанию — SelectionMode.SINGLE. Для включения множественного выбора в экземпляре ListView по умолчанию необходимо сделать следующее:

 listView.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE);

Настройка визуальных элементов ListView

Визуальные элементы ListView можно полностью настроить, заменив фабрику ячеек по умолчанию cell factory. Фабрика ячеек используется для генерации экземпляров ListCell, которые используются для представления элемента в ListView. См. документацию класса Cell для более подробного описания того, как создавать пользовательские ячейки.

Редактирование

Этот элемент управления поддерживает редактирование значений в режиме онлайн, и этот раздел пытается дать обзор доступных API и того, как вы должны их использовать.

Во-первых, редактирование ячейки обычно требует пользовательского интерфейса, отличного от того, когда ячейка не редактируется. Это обязанность реализации Cell, используемой. Для ListView это ответственность cell factory. Вы можете выбрать, будет ли ячейка постоянно в режиме редактирования (например, это обычно для ячеек CheckBox), или переключаться на другой пользовательский интерфейс при начале редактирования (например, при двойном щелчке по ячейке).

Чтобы узнать, когда запрошено редактирование ячейки, просто переопределите метод Cell.startEdit() и обновите свойства ячейки text и graphic соответствующим образом (например, установите текст в null и установите графику в TextField). Кроме того, вы также должны переопределить Cell.cancelEdit(), чтобы восстановить пользовательский интерфейс до его первоначального визуального состояния при завершении редактирования. В обоих случаях важно убедиться, что вы также вызываете родительский метод, чтобы ячейка выполнила все необходимые действия для входа или выхода из режима редактирования.

После того, как ваша ячейка находится в режиме редактирования, следующим, что вас, скорее всего, интересует, — это то, как сохранить или отменить выполняемое редактирование. Это ваша ответственность в качестве поставщика фабрики ячеек. Ваша реализация ячейки будет знать, когда редактирование завершено, основываясь на входных данных пользователя (например, когда пользователь нажимает клавиши Enter или Esc на клавиатуре). В этом случае вы должны вызвать Cell.commitEdit(Object) или Cell.cancelEdit(), соответственно.

При вызове Cell.commitEdit(Object) в ListView генерируется событие, которое можно наблюдать, добавив EventHandler с помощью setOnEditCommit(javafx.event.EventHandler). Аналогично, вы также можете наблюдать события редактирования для edit start и edit cancel.

По умолчанию обработчик подтверждения редактирования ListView не равен null, со стандартным обработчиком, который пытается перезаписать значение свойства для элемента в текущей редактируемой строке. Он может это сделать, поскольку метод Cell.commitEdit(Object) получает новое значение, и это значение передаётся обработчику подтверждения редактирования через событие ListView.EditEvent, которое генерируется. Это просто вопрос вызова ListView.EditEvent.getNewValue() для получения этого значения.

Крайне важно отметить, что если вы вызовете setOnEditCommit(javafx.event.EventHandler) со своим собственным EventHandler, то вы удалите обработчик по умолчанию. Если вы не обработаете запись в свойство (или соответствующий источник данных), ничего не произойдёт. Вы можете обойти это, используя метод Node.addEventHandler(javafx.event.EventType, javafx.event.EventHandler) для добавления editCommitEvent() EventType с желаемым EventHandler в качестве второго аргумента. Используя этот метод, вы не замените реализацию по умолчанию, но вы получите уведомление при наступлении подтверждения редактирования.

Надеемся, этот обзор ответит на некоторые часто задаваемые вопросы. К счастью, JavaFX поставляется с рядом предварительно созданных фабрик ячеек, которые обрабатывают все требования к редактированию от вашего имени. Вы можете найти эти предварительно созданные фабрики ячеек в пакете javafx.scene.control.cell.

С момента:
JavaFX 2.0
См. также:
ListCell, MultipleSelectionModel, FocusModel

Краткое описание свойств

Свойства
Тип Свойство Описание
ObjectProperty<Callback<ListView<T>,​ListCell<T>>> cellFactory
Установка пользовательской фабрики ячеек откладывает создание всех ячеек, что позволяет полностью настроить ячейку.
BooleanProperty editable
Указывает, является ли ListView редактируемым — только если ListView и ячейки списка (ListCells) в нем редактируемы, ячейка списка сможет перейти в состояние редактирования.
ReadOnlyIntegerProperty editingIndex
Свойство, используемое для представления индекса элемента, который в данный момент редактируется в ListView, если редактирование происходит, или -1, если ни один элемент не редактируется.
DoubleProperty fixedCellSize
Указывает, имеют ли ячейки этого элемента фиксированную высоту (заданного значения).
ObjectProperty<FocusModel<T>> focusModel
FocusModel предоставляет API для получения и установки фокуса на отдельный элемент в ListView.
ObjectProperty<ObservableList<T>> items
Базовая модель данных для ListView.
ObjectProperty<EventHandler<ListView.EditEvent<T>>> onEditCancel
Этот обработчик событий будет вызван, когда пользователь отменяет редактирование ячейки.
ObjectProperty<EventHandler<ListView.EditEvent<T>>> onEditCommit
Это свойство используется, когда пользователь выполняет действие, которое должно привести к сохранению его входных данных редактирования.
ObjectProperty<EventHandler<ListView.EditEvent<T>>> onEditStart
Этот обработчик событий будет вызван, когда пользователь успешно начинает редактирование.
ObjectProperty<EventHandler<ScrollToEvent<Integer>>> onScrollTo
Вызывается при запросе прокрутки индекса в область видимости с помощью scrollTo(int) или scrollTo(Object)
ObjectProperty<Orientation> orientation
Ориентация ListView — может быть горизонтальной или вертикальной.
ObjectProperty<Node> placeholder
Этот узел отображается пользователю, когда в списке нет отображаемых данных.
ObjectProperty<MultipleSelectionModel<T>> selectionModel
SelectionModel предоставляет API, с помощью которого можно выбирать один или несколько элементов в ListView, а также проверять, какие элементы выбрал пользователь.

Свойства, объявленные в классе javafx.scene.control.Control

contextMenu, skin, tooltip

Свойства, объявленные в классе javafx.scene.layout.Region

background, border, cacheShape, centerShape, height, insets, maxHeight, maxWidth, minHeight, minWidth, opaqueInsets, padding, prefHeight, prefWidth, scaleShape, shape, snapToPixel, width

Свойства, объявленные в классе javafx.scene.Parent

needsLayout

Свойства, объявленные в классе javafx.scene.Node

accessibleHelp, accessibleRoleDescription, accessibleRole, accessibleText, blendMode, boundsInLocal, boundsInParent, cacheHint, cache, clip, cursor, depthTest, disabled, disable, effectiveNodeOrientation, effect, eventDispatcher, focused, focusTraversable, hover, id, inputMethodRequests, layoutBounds, layoutX, layoutY, localToParentTransform, localToSceneTransform, managed, mouseTransparent, nodeOrientation, onContextMenuRequested, onDragDetected, onDragDone, onDragDropped, onDragEntered, onDragExited, onDragOver, onInputMethodTextChanged, onKeyPressed, onKeyReleased, onKeyTyped, onMouseClicked, onMouseDragEntered, onMouseDragExited, onMouseDragged, onMouseDragOver, onMouseDragReleased, onMouseEntered, onMouseExited, onMouseMoved, onMousePressed, onMouseReleased, onRotate, onRotationFinished, onRotationStarted, onScrollFinished, onScroll, onScrollStarted, onSwipeDown, onSwipeLeft, onSwipeRight, onSwipeUp, onTouchMoved, onTouchPressed, onTouchReleased, onTouchStationary, onZoomFinished, onZoom, onZoomStarted, opacity, parent, pickOnBounds, pressed, rotate, rotationAxis, scaleX, scaleY, scaleZ, scene, style, translateX, translateY, translateZ, viewOrder, visible

Краткое описание вложенных классов

Вложенные классы
Модификатор и тип Класс Описание
static class  ListView.EditEvent<T>
Подкласс Event, используемый в ListView для представления событий, связанных с редактированием.

Краткое описание полей

Поля, объявленные в классе javafx.scene.layout.Region

USE_COMPUTED_SIZE, USE_PREF_SIZE

Поля, объявленные в классе javafx.scene.Node

BASELINE_OFFSET_SAME_AS_HEIGHT

Краткое описание конструкторов

Конструкторы
Конструктор Описание
ListView()
Создает стандартный ListView, в котором содержимое будет отображаться вертикально.
ListView​(ObservableList<T> items)
Создает стандартный ListView, в котором содержимое, полученное из предоставленного ObservableList, будет отображаться вертикально.

Краткое описание методов

Модификатор и тип Метод Описание
ObjectProperty<Callback<ListView<T>,​ListCell<T>>> cellFactoryProperty()
Устанавливая пользовательский фабричный метод ячеек, откладывается создание всех ячеек, позволяя полностью настроить ячейку.
void edit​(int itemIndex)
Инструктирует ListView начать редактирование элемента в данном индексе, если ListView является editable.
BooleanProperty editableProperty()
Указывает, является ли этот ListView редактируемым — только если ListView и ListCells в нём редактируемы, ListCell сможет перейти в состояние редактирования.
static <T> EventType<ListView.EditEvent<T>> editAnyEvent()
Тип события, указывающий на то, что произошло какое-то событие редактирования.
static <T> EventType<ListView.EditEvent<T>> editCancelEvent()
Тип события, используемый для указания того, что событие редактирования только что было отменено в ListView, на котором было сгенерировано событие.
static <T> EventType<ListView.EditEvent<T>> editCommitEvent()
Тип события, используемый для указания того, что событие редактирования было подтверждено в ListView, на котором было сгенерировано событие.
ReadOnlyIntegerProperty editingIndexProperty()
Свойство, используемое для представления индекса элемента, который в данный момент редактируется в ListView, если редактирование происходит, или -1, если ни один элемент не редактируется.
static <T> EventType<ListView.EditEvent<T>> editStartEvent()
Тип события, используемый для указания того, что началось событие редактирования в ListView, на котором было сгенерировано событие.
DoubleProperty fixedCellSizeProperty()
Указывает, имеют ли ячейки этого элемента фиксированный размер (указанной величины).
ObjectProperty<FocusModel<T>> focusModelProperty()
FocusModel предоставляет API, позволяющее получить и установить фокус на одном элементе в ListView.
Callback<ListView<T>,​ListCell<T>> getCellFactory()
Возвращает текущий фабричный метод ячеек.
static List<CssMetaData<? extends Styleable,​?>> getClassCssMetaData()
List<CssMetaData<? extends Styleable,​?>> getControlCssMetaData()
int getEditingIndex()
Возвращает индекс элемента, который в данный момент редактируется в ListView, или -1, если ни один элемент не редактируется.
double getFixedCellSize()
Возвращает значение фиксированного размера ячейки.
FocusModel<T> getFocusModel()
Возвращает текущий установленный FocusModel.
ObservableList<T> getItems()
Возвращает ObservableList, содержащий элементы, которые в данный момент отображаются пользователю.
EventHandler<ListView.EditEvent<T>> getOnEditCancel()
Возвращает EventHandler, который вызывается, когда пользователь отменяет редактирование.
EventHandler<ListView.EditEvent<T>> getOnEditCommit()
Возвращает EventHandler, который вызывается, когда пользователь подтверждает редактирование.
EventHandler<ListView.EditEvent<T>> getOnEditStart()
Возвращает EventHandler, который вызывается, когда пользователь начинает редактирование.
EventHandler<ScrollToEvent<Integer>> getOnScrollTo()
Получает значение свойства onScrollTo.
Orientation getOrientation()
Возвращает текущую ориентацию ListView, которая определяет, прокручивается ли она вертикально или горизонтально.
Node getPlaceholder()
Получает значение свойства placeholder.
MultipleSelectionModel<T> getSelectionModel()
Возвращает текущую установленную модель выбора.
boolean isEditable()
Получает значение свойства editable.
ObjectProperty<ObservableList<T>> itemsProperty()
Основная модель данных для ListView.
ObjectProperty<EventHandler<ListView.EditEvent<T>>> onEditCancelProperty()
Этот обработчик событий будет вызываться, когда пользователь отменяет редактирование ячейки.
ObjectProperty<EventHandler<ListView.EditEvent<T>>> onEditCommitProperty()
Это свойство используется, когда пользователь выполняет действие, которое должно привести к сохранению их редактируемого ввода.
ObjectProperty<EventHandler<ListView.EditEvent<T>>> onEditStartProperty()
Этот обработчик событий будет вызываться, когда пользователь успешно начинает редактирование.
ObjectProperty<EventHandler<ScrollToEvent<Integer>>> onScrollToProperty()
Вызывается, когда поступает запрос на прокрутку индекса в область видимости с помощью scrollTo(int) или scrollTo(Object)
ObjectProperty<Orientation> orientationProperty()
Ориентация ListView - может быть горизонтальной или вертикальной.
ObjectProperty<Node> placeholderProperty()
Этот узел отображается пользователю, когда в ListView нет отображаемых данных.
void refresh()
Вызов refresh() заставляет ListView пересоздать и повторно заполнить ячейки, необходимые для заполнения визуальных границ элемента управления.
void scrollTo​(int index)
Прокручивает ListView таким образом, чтобы элемент в заданном индексе был виден конечному пользователю.
void scrollTo​(T object)
Прокручивает ListView так, чтобы данный объект был виден в области просмотра.
ObjectProperty<MultipleSelectionModel<T>> selectionModelProperty()
SelectionModel предоставляет API, позволяющее выбрать один или несколько элементов в ListView, а также проверить, какие элементы выбраны пользователем.
void setCellFactory​(Callback<ListView<T>,​ListCell<T>> value)
Устанавливает новый фабричный метод ячеек для использования в ListView.
void setEditable​(boolean value)
Устанавливает значение свойства editable.
void setFixedCellSize​(double value)
Устанавливает новый фиксированный размер ячейки для этого элемента управления.
void setFocusModel​(FocusModel<T> value)
Устанавливает FocusModel, который будет использоваться в ListView.
void setItems​(ObservableList<T> value)
Устанавливает базовую модель данных для ListView.
void setOnEditCancel​(EventHandler<ListView.EditEvent<T>> value)
Устанавливает EventHandler, который будет вызываться, когда пользователь отменяет редактирование.
void setOnEditCommit​(EventHandler<ListView.EditEvent<T>> value)
Устанавливает EventHandler, который будет вызываться, когда пользователь завершит редактирование.
void setOnEditStart​(EventHandler<ListView.EditEvent<T>> value)
Устанавливает EventHandler, который будет вызываться, когда пользователь начинает редактирование.
void setOnScrollTo​(EventHandler<ScrollToEvent<Integer>> value)
Устанавливает значение свойства onScrollTo.
void setOrientation​(Orientation value)
Устанавливает ориентацию ListView, определяющую, прокручивается ли она вертикально или горизонтально.
void setPlaceholder​(Node value)
Устанавливает значение свойства placeholder.
void setSelectionModel​(MultipleSelectionModel<T> value)
Устанавливает MultipleSelectionModel, который будет использоваться в ListView.

Методы, объявленные в классе javafx.scene.control.Control

computeMaxHeight, computeMaxWidth, computeMinHeight, computeMinWidth, contextMenuProperty, createDefaultSkin, getContextMenu, getCssMetaData, getInitialFocusTraversable, getTooltip, isResizable, setContextMenu, 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, 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, getTransforms, getTranslateX, getTranslateY, getTranslateZ, getTypeSelector, getUserData, getViewOrder, 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, 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.scene.control.Skinnable

getSkin, setSkin

Методы, объявленные в интерфейсе javafx.css.Styleable

getStyleableNode, getStyleClass

Подробности свойств

items

public final ObjectProperty<ObservableList<T>> itemsProperty
Базовая модель данных для ListView. Обратите внимание, что она имеет общий тип, который должен соответствовать типу самого ListView.
См. также:
getItems(), setItems(ObservableList)

placeholder

public final ObjectProperty<Node> placeholderProperty
Этот узел отображается пользователю, когда в списке нет содержимого для отображения. Это может быть связано с тем, что модель таблицы не содержит данных в первую очередь или что к модели списка применено фильтрование, в результате чего пользователю нечего отображать.
С тех пор:
JavaFX 8.0
См. также:
getPlaceholder(), setPlaceholder(Node)

selectionModel

public final ObjectProperty<MultipleSelectionModel<T>> selectionModelProperty
SelectionModel предоставляет API, с помощью которого можно выбирать один или несколько элементов в ListView, а также проверять, какие элементы были выбраны пользователем. Обратите внимание, что он имеет общий тип, который должен соответствовать типу самого ListView.
См. также:
getSelectionModel(), setSelectionModel(MultipleSelectionModel)

focusModel

public final ObjectProperty<FocusModel<T>> focusModelProperty
FocusModel предоставляет API, с помощью которого можно получить и установить фокус на одном элементе в ListView. Обратите внимание, что он имеет общий тип, который должен соответствовать типу самого ListView.
См. также:
getFocusModel(), setFocusModel(FocusModel)

orientation

public final ObjectProperty<Orientation> orientationProperty
Направление ListView — может быть горизонтальным или вертикальным.
См. также:
getOrientation(), setOrientation(Orientation)

cellFactory

public final ObjectProperty<Callback<ListView<T>,ListCell<T>>> cellFactoryProperty

Установка пользовательской фабрики ячеек приводит к отложению создания всех ячеек, что позволяет полностью настроить ячейку. Внутренне ListView отвечает за повторное использование ListCells — все, что необходимо, это чтобы пользовательская фабрика ячеек возвращала из этой функции ListCell, который можно использовать для представления любого элемента в ListView.

Дополнительные сведения см. в документации по классу Cell.

См. также:
getCellFactory(), setCellFactory(Callback)

fixedCellSize

public final DoubleProperty fixedCellSizeProperty
Указывает, имеет ли этот элемент управления ячейки с фиксированной высотой (указанного значения). Если это значение меньше или равно нулю, все ячейки имеют индивидуальные размеры и позиционирование. Это медленная операция. Поэтому, когда важна производительность, и разработчики не зависят от переменных размеров ячеек, рекомендуется установить значение фиксированного размера ячейки. Обычно ячейки имеют размер около 24 пикселей, поэтому установка фиксированного размера ячейки в 24 пикселя, вероятно, приведет к незначительным изменениям в визуализации, но улучшит производительность.

Чтобы установить это свойство через 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
См. также:
getFixedCellSize(), setFixedCellSize(double)

editable

public final BooleanProperty editableProperty
Указывает, является ли этот ListView редактируемым — только если ListView и ListCells внутри него оба редактируемы, ListCell сможет перейти в состояние редактирования.
См. также:
isEditable(), setEditable(boolean)

editingIndex

public final ReadOnlyIntegerProperty editingIndexProperty

Свойство, используемое для представления индекса элемента, который в данный момент редактируется в ListView, если редактирование происходит, или -1, если ни один элемент не редактируется.

Невозможно установить индекс редактирования, вместо этого необходимо вызвать edit(int).

См. также:
getEditingIndex()

onEditStart

public final ObjectProperty<EventHandler<ListView.EditEvent<T>>> onEditStartProperty
Обработчик событий будет вызван, когда пользователь успешно инициирует редактирование.
См. также:
getOnEditStart(), setOnEditStart(EventHandler)

onEditCommit

public final ObjectProperty<EventHandler<ListView.EditEvent<T>>> onEditCommitProperty

Это свойство используется, когда пользователь выполняет действие, которое должно привести к сохранению его ввода в ходе редактирования.

Обработчик событий в этом свойстве не должен вызываться напрямую — вместо этого вызывайте Cell.commitEdit(java.lang.Object) изнутри вашей пользовательской ListCell. Это позволит обработать срабатывание этого события, обновление представления и выход из состояния редактирования.

См. также:
getOnEditCommit(), setOnEditCommit(EventHandler)

onEditCancel

public final ObjectProperty<EventHandler<ListView.EditEvent<T>>> onEditCancelProperty
Обработчик событий будет вызван, когда пользователь отменяет редактирование ячейки.
См. также:
getOnEditCancel(), setOnEditCancel(EventHandler)

onScrollTo

public ObjectProperty<EventHandler<ScrollToEvent<Integer>>> onScrollToProperty
Вызывается при запросе прокрутки индекса в область просмотра с помощью scrollTo(int) или scrollTo(Object)
С тех пор:
JavaFX 8.0
См. также:
getOnScrollTo(), setOnScrollTo(EventHandler)

Подробности конструкторов

ListView

public ListView()
Создает стандартный ListView, который будет отображать содержимое, расположенное вертикально. Поскольку в этом конструкторе не предоставляется ObservableList, создается пустой ObservableList, что означает, что при необходимости можно напрямую вызвать getItems(). Однако, как отмечалось ранее, такой подход не рекомендуется (вместо этого вызывайте setItems(javafx.collections.ObservableList)).

Дополнительные сведения о стандартном состоянии других свойств см. в документации по классу ListView.

ListView

public ListView(ObservableList<T> items)
Создает стандартный ListView, который будет выводить содержимое, полученное из предоставленного ObservableList, вертикально.

Попытка добавить слушатель к ObservableList, чтобы все последующие изменения в списке отображались пользователю.

Дополнительные сведения о стандартном состоянии других свойств см. в документации по классу ListView.

Параметры:
items — список элементов

Подробности методов

editAnyEvent

public static <T> EventType<ListView.EditEvent<T>> editAnyEvent()
Тип события, указывающий на то, что произошло какое-то событие редактирования. Это родительский тип всех других событий редактирования: editStartEvent(), editCommitEvent() и editCancelEvent().
Параметры типа:
T — тип объектов, хранящихся в этом ListView
Возвращает:
тип события

editStartEvent

public static <T> EventType<ListView.EditEvent<T>> editStartEvent()
Тип события, используемый для указания того, что событие редактирования началось в ListView, на котором было сгенерировано событие.
Параметры типа:
T — тип объектов, хранящихся в этом ListView
Возвращает:
тип события

editCancelEvent

public static <T> EventType<ListView.EditEvent<T>> editCancelEvent()
Тип события, используемый для указания того, что событие редактирования было отменено в ListView, на котором было сгенерировано событие.
Параметры типа:
T — тип объектов, хранящихся в этом ListView
Возвращает:
тип события

editCommitEvent

public static <T> EventType<ListView.EditEvent<T>> editCommitEvent()
Тип события, используемого для указания того, что событие редактирования было подтверждено в ListView, в котором было сгенерировано событие.
Type Parameters:
T - тип объектов, хранящихся в этом ListView
Returns:
тип события

setItems

public final void setItems(ObservableList<T> value)
Устанавливает основную модель данных для ListView. Обратите внимание, что она имеет общий тип, который должен соответствовать типу самого ListView.
Parameters:
value - список элементов для этого ListView

getItems

public final ObservableList<T> getItems()
Возвращает ObservableList, содержащий элементы, которые в данный момент отображаются пользователю. Может быть null, если setItems(javafx.collections.ObservableList) был вызван ранее, однако по умолчанию это пустой ObservableList.
Returns:
ObservableList, содержащий элементы, которые должны быть показаны пользователю, или null, если элементы ранее были установлены в null.

itemsProperty

public final ObjectProperty<ObservableList<T>> itemsProperty()
Основная модель данных для ListView. Обратите внимание, что она имеет общий тип, который должен соответствовать типу самого ListView.
See Also:
getItems(), setItems(ObservableList)

placeholderProperty

public final ObjectProperty<Node> placeholderProperty()
Этот узел отображается пользователю, когда список не содержит отображаемых данных. Это может быть связано с тем, что в модели таблицы нет данных или что к модели списка применено фильтрование, в результате чего пользователю ничего не отображается.
Since:
JavaFX 8.0
See Also:
getPlaceholder(), setPlaceholder(Node)

setPlaceholder

public final void setPlaceholder(Node value)
Устанавливает значение свойства placeholder.
Property description:
Этот узел отображается пользователю, когда список не содержит отображаемых данных. Это может быть связано с тем, что в модели таблицы нет данных или что к модели списка применено фильтрование, в результате чего пользователю ничего не отображается.
Since:
JavaFX 8.0

getPlaceholder

public final Node getPlaceholder()
Возвращает значение свойства placeholder.
Property description:
Этот узел отображается пользователю, когда список не содержит отображаемых данных. Это может быть связано с тем, что в модели таблицы нет данных или что к модели списка применено фильтрование, в результате чего пользователю ничего не отображается.
Since:
JavaFX 8.0

setSelectionModel

public final void setSelectionModel(MultipleSelectionModel<T> value)
Устанавливает MultipleSelectionModel, который будет использоваться в ListView. Несмотря на то, что ListView требует MultipleSelectionModel, его можно настроить на разрешение только одного выбора (см. MultipleSelectionModel.setSelectionMode(javafx.scene.control.SelectionMode) для получения дополнительной информации).
Parameters:
value - MultipleSelectionModel, который будет использоваться в этом ListView

getSelectionModel

public final MultipleSelectionModel<T> getSelectionModel()
Возвращает текущую установленную модель выбора.
Returns:
текущую установленную модель выбора

selectionModelProperty

public final ObjectProperty<MultipleSelectionModel<T>> selectionModelProperty()
SelectionModel предоставляет API, позволяющее выбирать один или несколько элементов в ListView, а также проверять, какие элементы были выбраны пользователем. Обратите внимание, что он имеет общий тип, который должен соответствовать типу самого ListView.
See Also:
getSelectionModel(), setSelectionModel(MultipleSelectionModel)

setFocusModel

public final void setFocusModel(FocusModel<T> value)
Устанавливает FocusModel, который будет использоваться в ListView.
Parameters:
value - FocusModel, который будет использоваться в ListView

getFocusModel

public final FocusModel<T> getFocusModel()
Возвращает текущую установленную FocusModel.
Returns:
текущую установленную FocusModel

focusModelProperty

public final ObjectProperty<FocusModel<T>> focusModelProperty()
FocusModel предоставляет API, позволяющий получить и установить фокус на единственном элементе в ListView. Обратите внимание, что он имеет общий тип, который должен соответствовать типу самого ListView.
See Also:
getFocusModel(), setFocusModel(FocusModel)

setOrientation

public final void setOrientation(Orientation value)
Устанавливает ориентацию ListView, определяющую, прокручивается ли он вертикально или горизонтально.
Parameters:
value - ориентация ListView

getOrientation

public final Orientation getOrientation()
Возвращает текущую ориентацию ListView, определяющую, прокручивается ли он вертикально или горизонтально.
Returns:
текущая ориентация ListView

orientationProperty

public final ObjectProperty<Orientation> orientationProperty()
Ориентация ListView - может быть либо горизонтальной, либо вертикальной.
See Also:
getOrientation(), setOrientation(Orientation)

setCellFactory

public final void setCellFactory(Callback<ListView<T>,​ListCell<T>> value)
Устанавливает новую фабрику ячеек для использования в ListView. Это приводит к тому, что все старые ListCell удаляются, и создаются новые ListCell с новой фабрикой ячеек.
Parameters:
value - фабрика ячеек для использования в этом ListView

getCellFactory

public final Callback<ListView<T>,ListCell<T>> getCellFactory()
Возвращает текущую фабрику ячеек.
Returns:
текущая фабрика ячеек

cellFactoryProperty

public final ObjectProperty<Callback<ListView<T>,ListCell<T>>> cellFactoryProperty()

Установка пользовательской фабрики ячеек приводит к отложению всех операций создания ячеек, позволяя полностью настроить ячейку. Внутренне ListView отвечает за повторное использование ListCell; всё, что требуется, это чтобы пользовательская фабрика ячеек возвращала из этой функции ListCell, который может использоваться для представления любого элемента в ListView.

Для получения более подробной информации обратитесь к документации класса Cell.

See Also:
getCellFactory(), setCellFactory(Callback)

setFixedCellSize

public final void setFixedCellSize(double value)
Устанавливает новый фиксированный размер ячейки для данного элемента управления. Любое значение, большее нуля, включит режим фиксированного размера ячейки, в то время как значение ноль или отрицательное (или Region.USE_COMPUTED_SIZE) будет использоваться для отключения режима фиксированного размера ячейки.
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()
Указывает, имеет ли этот элемент управления ячейки с фиксированной высотой (заданного значения). Если это значение меньше или равно нулю, все ячейки имеют индивидуальный размер и позиционирование. Это медленная операция. Поэтому, когда важна производительность, и разработчики не зависят от переменного размера ячеек, рекомендуется установить значение фиксированного размера ячейки. Обычно ячейки составляют около 24 пикселей, поэтому установка фиксированного размера ячейки в 24 пикселя, вероятно, практически не повлияет на визуальное отображение, но улучшит производительность.

Для установки этого свойства через CSS используйте свойство -fx-fixed-cell-size. Не следует путать его со свойством -fx-cell-size. Разница между этими двумя свойствами CSS заключается в том, что -fx-cell-size задаст размер всех ячеек до указанного значения, но не будет навязывать, что это единственный размер (что позволит использовать переменные размеры ячеек и предотвратит возможность повышения производительности). Поэтому, когда важна производительность, используйте -fx-fixed-cell-size вместо -fx-cell-size. Если оба свойства указаны в CSS, -fx-fixed-cell-size имеет приоритет.

Since:
JavaFX 8.0
See Also:
getFixedCellSize(), setFixedCellSize(double)

setEditable

public final void setEditable(boolean value)
Устанавливает значение свойства editable.
Property description:
Указывает, является ли этот ListView редактируемым — только если ListView и ListCells внутри него являются редактируемыми, ListCell сможет перейти в состояние редактирования.

isEditable

public final boolean isEditable()
Получает значение свойства editable.
Property description:
Указывает, является ли этот ListView редактируемым — только если ListView и ListCells внутри него являются редактируемыми, ListCell сможет перейти в состояние редактирования.

editableProperty

public final BooleanProperty editableProperty()
Указывает, является ли этот ListView редактируемым — только если ListView и ListCells внутри него являются редактируемыми, ListCell сможет перейти в состояние редактирования.
See Also:
isEditable(), setEditable(boolean)

getEditingIndex

public final int getEditingIndex()
Возвращает индекс элемента, который в данный момент редактируется в ListView, или -1, если ни один элемент не редактируется.
Returns:
индекс элемента, который в данный момент редактируется

editingIndexProperty

public final ReadOnlyIntegerProperty editingIndexProperty()

Свойство, используемое для представления индекса элемента, который в данный момент редактируется в ListView, если происходит редактирование, или -1, если ни один элемент не редактируется.

Установить индекс редактирования нельзя, вместо этого необходимо вызвать edit(int).

See Also:
getEditingIndex()

setOnEditStart

public final void setOnEditStart(EventHandler<ListView.EditEvent<T>> value)
Устанавливает EventHandler, который будет вызван при начале редактирования пользователем.

Это удобный метод — тот же результат можно получить, вызвав addEventHandler(ListView.EDIT_START_EVENT, eventHandler).

Parameters:
value - обработчик событий, который будет вызван при начале редактирования пользователем

getOnEditStart

public final EventHandler<ListView.EditEvent<T>> getOnEditStart()
Возвращает EventHandler, который будет вызван при начале редактирования пользователем.
Returns:
обработчик событий, который будет вызван при начале редактирования пользователем

onEditStartProperty

public final ObjectProperty<EventHandler<ListView.EditEvent<T>>> onEditStartProperty()
Этот обработчик событий будет вызван, когда пользователь успешно инициирует редактирование.
See Also:
getOnEditStart(), setOnEditStart(EventHandler)

setOnEditCommit

public final void setOnEditCommit(EventHandler<ListView.EditEvent<T>> value)
Устанавливает EventHandler, который будет вызван, когда пользователь завершит редактирование. Этот метод вызывается в рамках метода Cell.commitEdit(java.lang.Object).

Это удобный метод — тот же результат можно получить, вызвав addEventHandler(ListView.EDIT_START_EVENT, eventHandler).

Parameters:
value — обработчик событий, который будет вызван, когда пользователь завершит редактирование

getOnEditCommit

public final EventHandler<ListView.EditEvent<T>> getOnEditCommit()
Возвращает EventHandler, который будет вызван, когда пользователь подтвердит правку.
Returns:
обработчик событий, который будет вызван, когда пользователь подтвердит правку

onEditCommitProperty

public final ObjectProperty<EventHandler<ListView.EditEvent<T>>> onEditCommitProperty()

Это свойство используется, когда пользователь выполняет действие, которое должно привести к сохранению его ввода редактирования.

Обработчик событий в этом свойстве не должен вызываться напрямую — вместо этого необходимо вызвать Cell.commitEdit(java.lang.Object) внутри вашей пользовательской ListCell. Это позволит обработать событие, обновить представление и выйти из состояния редактирования.

See Also:
getOnEditCommit(), setOnEditCommit(EventHandler)

setOnEditCancel

public final void setOnEditCancel(EventHandler<ListView.EditEvent<T>> value)
Устанавливает EventHandler, который будет вызван при отмене редактирования пользователем.
Parameters:
value — обработчик событий, который будет вызван при отмене редактирования пользователем

getOnEditCancel

public final EventHandler<ListView.EditEvent<T>> getOnEditCancel()
Возвращает EventHandler, который будет вызван при отмене редактирования пользователем.
Returns:
обработчик событий, который будет вызван при отмене редактирования пользователем

onEditCancelProperty

public final ObjectProperty<EventHandler<ListView.EditEvent<T>>> onEditCancelProperty()
Этот обработчик событий будет вызван, когда пользователь отменяет редактирование ячейки.
See Also:
getOnEditCancel(), setOnEditCancel(EventHandler)

edit

public void edit(int itemIndex)
Указывает ListView начать редактирование элемента с указанным индексом, если ListView является editable. После вызова этого метода, если текущий cellFactoryProperty() настроен для поддержки редактирования, ячейка изменит своё визуальное состояние, чтобы разрешить ввод данных пользователем.
Parameters:
itemIndex — индекс элемента в ListView, который необходимо отредактировать.

scrollTo

public void scrollTo(int index)
Прокручивает ListView так, чтобы элемент с указанным индексом был виден пользователю.
Parameters:
index — индекс, который должен быть виден пользователю, предполагая, конечно, что он больше или равен 0 и меньше размера списка элементов, содержащихся в данном ListView.

scrollTo

public void scrollTo(T object)
Прокручивает ListView так, чтобы данный объект был виден в области просмотра.
Parameters:
object — объект, который должен быть виден пользователю.
Since:
JavaFX 8.0

setOnScrollTo

public void setOnScrollTo(EventHandler<ScrollToEvent<Integer>> value)
Устанавливает значение свойства onScrollTo.
Property description:
Вызывается при запросе прокрутки индекса в область просмотра с помощью scrollTo(int) или scrollTo(Object)
Since:
JavaFX 8.0

getOnScrollTo

public EventHandler<ScrollToEvent<Integer>> getOnScrollTo()
Получает значение свойства onScrollTo.
Property description:
Вызывается при запросе прокрутки индекса в область просмотра с помощью scrollTo(int) или scrollTo(Object)
Since:
JavaFX 8.0

onScrollToProperty

public ObjectProperty<EventHandler<ScrollToEvent<Integer>>> onScrollToProperty()
Вызывается при запросе прокрутки индекса в область просмотра с помощью scrollTo(int) или scrollTo(Object)
Since:
JavaFX 8.0
See Also:
getOnScrollTo(), setOnScrollTo(EventHandler)

refresh

public void refresh()
Вызов refresh() заставляет элемент управления ListView пересоздать и повторно заполнить ячейки, необходимые для заполнения визуальных границ элемента управления. Другими словами, это заставляет ListView обновить отображаемую пользователю информацию. Это полезно в тех случаях, когда исходные данные изменились таким образом, что ListView этого не заметил.
Since:
JavaFX 8u60

getClassCssMetaData

public static List<CssMetaData<? extends Styleable,?>> getClassCssMetaData()
Возвращает:
CssMetaData, связанный с этим классом, который может включать CssMetaData его суперклассов.
С:
JavaFX 8.0

getControlCssMetaData

public List<CssMetaData<? extends Styleable,?>> getControlCssMetaData()
Переопределяет:
getControlCssMetaData в классе Control
Возвращает:
неизменяемый список свойств стилей управления.
С:
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.

Spec-Zone.ru

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