Класс ListView<T>
- Параметры типа:
-
T- Этот тип используется для представления типа объектов, хранящихся в списках ListViewsitemsObservableList. Он также используется вselection modelиfocus model.
- Все реализованные интерфейсы:
-
Styleable,EventTarget,Skinnable
@DefaultProperty("items") public class ListView<T> extends Control Заполнение 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); Конечным результатом этого, как указано выше, является то, что ListView будет автоматически обновлять представление, чтобы отобразить элементы в списке.
Другой подход, хотя и принимается ListView, не является рекомендуемым:
List<T> content = ...
getItems().setAll(content); Проблема с показанным выше подходом заключается в том, что содержимое списка копируется в список элементов, что означает, что последующие изменения в списке содержимого не отслеживаются и не будут визуально отображаться в ListView. ListView Selection / Focus API
Для отслеживания выделения и фокуса необходимо ознакомиться с классами 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.
Предупреждение: узлы не должны вставляться непосредственно в список элементов
ListView позволяет списку элементов содержать элементы любого типа, включая экземпляры Node. Вставка узлов в список элементов строго не рекомендуется, так как это может привести к непредсказуемым результатам. Важные замечания:
- Избегайте прямой вставки экземпляров
Nodeв список элементов или его модель данных. - Рекомендуемый подход — поместить соответствующую информацию в список элементов и предоставить пользовательский
cell factoryдля создания узлов для данной ячейки и обновления их по требованию, используя данные, хранящиеся в элементе для этой ячейки. - Избегайте создания новых
Nodeв методеupdateItemпользовательскогоcell factory.
Следующий минимальный пример показывает, как создать пользовательский завод ячеек для ListView, содержащий Node:
ListView<Color> lv = new ListView<>();
lv.getItems().addAll(Color.RED, Color.GREEN, Color.BLUE);
lv.setCellFactory(p -> {
return new ListCell<>() {
private final Rectangle rectangle;
{
setContentDisplay(ContentDisplay.GRAPHIC_ONLY);
rectangle = new Rectangle(10, 10);
}
@Override
protected void updateItem(Color item, boolean empty) {
super.updateItem(item, empty);
if (item == null || empty) {
setGraphic(null);
} else {
rectangle.setFill(item);
setGraphic(rectangle);
}
}
};
}); В этом примере анонимный пользовательский класс ListCell используется в пользовательском заводе ячеек. Обратите внимание, что объект Rectangle (Node) должен быть создан в блоке инициализации экземпляра или конструкторе пользовательского класса ListCell и обновляться/использоваться в методе updateItem.
Редактирование
Этот элемент управления поддерживает инлайн-редактирование значений, и этот раздел пытается дать обзор доступных 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
- См. также:
Краткое описание свойств
| Тип | Свойство | Описание |
|---|---|---|
final ObjectProperty<Callback<ListView<T>, |
cellFactory |
Установка пользовательской фабрики ячеек приводит к отложению создания всех ячеек, что позволяет полностью настроить ячейку. |
final BooleanProperty |
editable |
Указывает, является ли этот ListView редактируемым. Редактирование ячейки ListCell возможно только если ListView и ListCells внутри него являются редактируемыми. |
final ReadOnlyIntegerProperty |
editingIndex |
Свойство, используемое для представления индекса элемента, который в данный момент редактируется в ListView, если редактирование происходит, или -1, если никакой элемент не редактируется. |
final DoubleProperty |
fixedCellSize |
Указывает, имеют ли ячейки этого элемента фиксированную высоту (заданного значения). |
final ObjectProperty<FocusModel<T>> |
focusModel |
FocusModel предоставляет API, с помощью которого можно получить и установить фокус на единственный элемент в ListView. |
final ObjectProperty<ObservableList<T>> |
items |
Базовая модель данных для ListView. |
final ObjectProperty<EventHandler<ListView.EditEvent<T>>> |
onEditCancel |
Этот обработчик событий будет вызван, когда пользователь отменяет редактирование ячейки. |
final ObjectProperty<EventHandler<ListView.EditEvent<T>>> |
onEditCommit |
Это свойство используется, когда пользователь выполняет действие, которое должно привести к сохранению его ввода редактирования. |
final ObjectProperty<EventHandler<ListView.EditEvent<T>>> |
onEditStart |
Этот обработчик событий будет вызван, когда пользователь успешно инициирует редактирование. |
ObjectProperty<EventHandler<ScrollToEvent<Integer>>> |
onScrollTo |
Вызывается при запросе прокрутки индекса в область видимости с помощью scrollTo(int) или scrollTo(Object)
|
final ObjectProperty<Orientation> |
orientation |
Ориентация ListView - может быть горизонтальной или вертикальной. |
final ObjectProperty<Node> |
placeholder |
Node для отображения пользователю, когда в ListView нет отображаемой информации. |
final 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, focusVisible, focusWithin, hover, id, inputMethodRequests, layoutBounds, layoutX, layoutY, localToParentTransform, localToSceneTransform, managed, mouseTransparent, nodeOrientation, onContextMenuRequested, onDragDetected, onDragDone, onDragDropped, onDragEntered, onDragExited, onDragOver, onInputMethodTextChanged, onKeyPressed, onKeyReleased, onKeyTyped, onMouseClicked, onMouseDragEntered, onMouseDragExited, onMouseDragged, onMouseDragOver, onMouseDragReleased, onMouseEntered, onMouseExited, onMouseMoved, onMousePressed, onMouseReleased, onRotate, onRotationFinished, onRotationStarted, onScrollFinished, onScroll, onScrollStarted, onSwipeDown, onSwipeLeft, onSwipeRight, onSwipeUp, onTouchMoved, onTouchPressed, onTouchReleased, onTouchStationary, onZoomFinished, onZoom, onZoomStarted, opacity, parent, pickOnBounds, pressed, rotate, rotationAxis, scaleX, scaleY, scaleZ, scene, style, translateX, translateY, translateZ, viewOrder, visible
Краткое описание вложенных классов
| Модификатор и тип | Класс | Описание |
|---|---|---|
static class |
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 |
Создаёт ListView по умолчанию, который будет располагать содержимое, полученное из предоставленного ObservableList, вертикально. |
Краткое описание методов
| Modifier and Type | Method | Description |
|---|---|---|
final ObjectProperty<Callback<ListView<T>, |
cellFactoryProperty() |
Установка пользовательской фабрики ячеек приводит к отложению создания всех ячеек, что позволяет полностью настроить ячейку. |
void |
edit |
Инструктирует ListView начать редактирование элемента в заданном индексе, если ListView является editable. |
final 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, на котором было сгенерировано событие. |
final ReadOnlyIntegerProperty |
editingIndexProperty() |
Свойство, используемое для представления индекса элемента, который в данный момент редактируется в ListView, если редактирование происходит, или -1, если ни один элемент не редактируется. |
static <T> EventType<ListView.EditEvent<T>> |
editStartEvent() |
Тип события, используемый для указания того, что событие редактирования началось в ListView, на котором было сгенерировано событие. |
final DoubleProperty |
fixedCellSizeProperty() |
Указывает, имеет ли данный элемент ячейки с фиксированной высотой (указанного значения). |
final ObjectProperty<FocusModel<T>> |
focusModelProperty() |
FocusModel предоставляет API, с помощью которого можно получить и установить фокус на одном элементе в ListView. |
final Callback<ListView<T>, |
getCellFactory() |
Возвращает текущую фабрику ячеек. |
static List<CssMetaData<? extends Styleable, |
getClassCssMetaData() |
Получает CssMetaData, связанное с этим классом, что может включать CssMetaData его суперклассов. |
List<CssMetaData<? extends Styleable, |
getControlCssMetaData() |
Получает неизменяемый список CSS-стилизуемых свойств элемента управления. |
final int |
getEditingIndex() |
Возвращает индекс элемента, который в данный момент редактируется в ListView, или -1, если ни один элемент не редактируется. |
final double |
getFixedCellSize() |
Возвращает значение фиксированного размера ячейки. |
final FocusModel<T> |
getFocusModel() |
Возвращает текущий установленный FocusModel. |
final ObservableList<T> |
getItems() |
Возвращает ObservableList, содержащий элементы, которые в данный момент отображаются пользователю. |
final EventHandler<ListView.EditEvent<T>> |
getOnEditCancel() |
Возвращает EventHandler, который будет вызван, когда пользователь отменяет редактирование. |
final EventHandler<ListView.EditEvent<T>> |
getOnEditCommit() |
Возвращает EventHandler, который будет вызван, когда пользователь подтверждает редактирование. |
final EventHandler<ListView.EditEvent<T>> |
getOnEditStart() |
Возвращает EventHandler, который будет вызван, когда пользователь начинает редактирование. |
EventHandler<ScrollToEvent<Integer>> |
getOnScrollTo() |
Получает значение свойства onScrollTo. |
final Orientation |
getOrientation() |
Возвращает текущую ориентацию ListView, которая определяет, прокручивается ли он вертикально или горизонтально. |
final Node |
getPlaceholder() |
Получает значение свойства placeholder. |
final MultipleSelectionModel<T> |
getSelectionModel() |
Возвращает текущий установленный выбор модели. |
final boolean |
isEditable() |
Получает значение свойства editable. |
final ObjectProperty<ObservableList<T>> |
itemsProperty() |
Базовая модель данных для ListView. |
final ObjectProperty<EventHandler<ListView.EditEvent<T>>> |
onEditCancelProperty() |
Обработчик событий будет вызван, когда пользователь отменяет редактирование ячейки. |
final ObjectProperty<EventHandler<ListView.EditEvent<T>>> |
onEditCommitProperty() |
Это свойство используется, когда пользователь выполняет действие, которое должно привести к сохранению введённых данных. |
final ObjectProperty<EventHandler<ListView.EditEvent<T>>> |
onEditStartProperty() |
Обработчик событий будет вызван, когда пользователь успешно начинает редактирование. |
ObjectProperty<EventHandler<ScrollToEvent<Integer>>> |
onScrollToProperty() |
Вызывается при запросе прокрутки индекса в видимую область с помощью scrollTo(int) или scrollTo(Object)
|
final ObjectProperty<Orientation> |
orientationProperty() |
Ориентация ListView — может быть горизонтальной или вертикальной. |
final ObjectProperty<Node> |
placeholderProperty() |
Node для отображения, когда у ListView нет отображаемых данных. |
void |
refresh() |
Вызов refresh() заставляет элемент управления ListView пересоздать и повторно заполнить ячейки, необходимые для заполнения визуальных границ элемента управления. |
void |
scrollTo |
Прокручивает ListView так, чтобы элемент с данным индексом был видим для пользователя. |
void |
scrollTo |
Прокручивает ListView таким образом, чтобы данный объект был виден внутри области просмотра. |
final ObjectProperty<MultipleSelectionModel<T>> |
selectionModelProperty() |
SelectionModel предоставляет API, с помощью которого можно выбирать один или несколько элементов в ListView, а также проверять, какие элементы были выбраны пользователем. |
final void |
setCellFactory |
Устанавливает новую фабрику ячеек для использования в ListView. |
final void |
setEditable |
Устанавливает значение свойства editable. |
final void |
setFixedCellSize |
Устанавливает новый фиксированный размер ячейки для данного элемента управления. |
final void |
setFocusModel |
Устанавливает FocusModel для использования в ListView. |
final void |
setItems |
Устанавливает базовая модель данных для ListView. |
final void |
setOnEditCancel |
Устанавливает EventHandler, который будет вызван при отмене редактирования пользователем. |
final void |
setOnEditCommit |
Устанавливает EventHandler, который будет вызван, когда пользователь завершит редактирование. |
final void |
setOnEditStart |
Устанавливает EventHandler, который будет вызван, когда пользователь начнёт редактирование. |
void |
setOnScrollTo |
Устанавливает значение свойства onScrollTo. |
final void |
setOrientation |
Устанавливает ориентацию ListView, которая определяет, прокручивается ли он вертикально или горизонтально. |
final void |
setPlaceholder |
Устанавливает значение свойства placeholder. |
final void |
setSelectionModel |
Устанавливает MultipleSelectionModel для использования в ListView. |
Методы, объявленные в классе javafx.scene.control.Control
computeMaxHeight, computeMaxWidth, computeMinHeight, computeMinWidth, contextMenuProperty, createDefaultSkin, getContextMenu, getCssMetaData, getInitialFocusTraversable, getSkin, getTooltip, isResizable, setContextMenu, setSkin, setTooltip, skinProperty, tooltipProperty
Методы, объявленные в классе javafx.scene.layout.Region
backgroundProperty, borderProperty, cacheShapeProperty, centerShapeProperty, computePrefHeight, computePrefWidth, getBackground, getBorder, getHeight, getInsets, getMaxHeight, getMaxWidth, getMinHeight, getMinWidth, getOpaqueInsets, getPadding, getPrefHeight, getPrefWidth, getShape, getUserAgentStylesheet, getWidth, heightProperty, insetsProperty, isCacheShape, isCenterShape, isScaleShape, isSnapToPixel, layoutInArea, layoutInArea, layoutInArea, layoutInArea, maxHeight, maxHeightProperty, maxWidth, maxWidthProperty, minHeight, minHeightProperty, minWidth, minWidthProperty, opaqueInsetsProperty, paddingProperty, positionInArea, positionInArea, prefHeight, prefHeightProperty, prefWidth, prefWidthProperty, resize, scaleShapeProperty, setBackground, setBorder, setCacheShape, setCenterShape, setHeight, setMaxHeight, setMaxSize, setMaxWidth, setMinHeight, setMinSize, setMinWidth, setOpaqueInsets, setPadding, setPrefHeight, setPrefSize, setPrefWidth, setScaleShape, setShape, setSnapToPixel, setWidth, shapeProperty, snappedBottomInset, snappedLeftInset, snappedRightInset, snappedTopInset, snapPosition, snapPositionX, snapPositionY, snapSize, snapSizeX, snapSizeY, snapSpace, snapSpaceX, snapSpaceY, snapToPixelProperty, widthProperty
Методы, объявленные в классе javafx.scene.Parent
getBaselineOffset, getChildren, getChildrenUnmodifiable, getManagedChildren, getStylesheets, isNeedsLayout, layout, layoutChildren, needsLayoutProperty, requestLayout, requestParentLayout, setNeedsLayout, updateBounds
Методы, объявленные в классе javafx.scene.Node
accessibleHelpProperty, accessibleRoleDescriptionProperty, accessibleRoleProperty, accessibleTextProperty, addEventFilter, addEventHandler, applyCss, autosize, blendModeProperty, boundsInLocalProperty, boundsInParentProperty, buildEventDispatchChain, cacheHintProperty, cacheProperty, clipProperty, computeAreaInScreen, contains, contains, cursorProperty, depthTestProperty, disabledProperty, disableProperty, effectiveNodeOrientationProperty, effectProperty, eventDispatcherProperty, executeAccessibleAction, fireEvent, focusedProperty, focusTraversableProperty, focusVisibleProperty, focusWithinProperty, getAccessibleHelp, getAccessibleRole, getAccessibleRoleDescription, getAccessibleText, getBlendMode, getBoundsInLocal, getBoundsInParent, getCacheHint, getClip, getContentBias, getCursor, getDepthTest, getEffect, getEffectiveNodeOrientation, getEventDispatcher, getId, getInitialCursor, getInputMethodRequests, getLayoutBounds, getLayoutX, getLayoutY, getLocalToParentTransform, getLocalToSceneTransform, getNodeOrientation, getOnContextMenuRequested, getOnDragDetected, getOnDragDone, getOnDragDropped, getOnDragEntered, getOnDragExited, getOnDragOver, getOnInputMethodTextChanged, getOnKeyPressed, getOnKeyReleased, getOnKeyTyped, getOnMouseClicked, getOnMouseDragEntered, getOnMouseDragExited, getOnMouseDragged, getOnMouseDragOver, getOnMouseDragReleased, getOnMouseEntered, getOnMouseExited, getOnMouseMoved, getOnMousePressed, getOnMouseReleased, getOnRotate, getOnRotationFinished, getOnRotationStarted, getOnScroll, getOnScrollFinished, getOnScrollStarted, getOnSwipeDown, getOnSwipeLeft, getOnSwipeRight, getOnSwipeUp, getOnTouchMoved, getOnTouchPressed, getOnTouchReleased, getOnTouchStationary, getOnZoom, getOnZoomFinished, getOnZoomStarted, getOpacity, getParent, getProperties, getPseudoClassStates, getRotate, getRotationAxis, getScaleX, getScaleY, getScaleZ, getScene, getStyle, getStyleableParent, getStyleClass, getTransforms, getTranslateX, getTranslateY, getTranslateZ, getTypeSelector, getUserData, getViewOrder, hasProperties, hoverProperty, idProperty, inputMethodRequestsProperty, intersects, intersects, isCache, isDisable, isDisabled, isFocused, isFocusTraversable, isFocusVisible, isFocusWithin, isHover, isManaged, isMouseTransparent, isPickOnBounds, isPressed, isVisible, layoutBoundsProperty, layoutXProperty, layoutYProperty, localToParent, localToParent, localToParent, localToParent, localToParent, localToParentTransformProperty, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToSceneTransformProperty, localToScreen, localToScreen, localToScreen, localToScreen, localToScreen, lookup, lookupAll, managedProperty, mouseTransparentProperty, nodeOrientationProperty, notifyAccessibleAttributeChanged, onContextMenuRequestedProperty, onDragDetectedProperty, onDragDoneProperty, onDragDroppedProperty, onDragEnteredProperty, onDragExitedProperty, onDragOverProperty, onInputMethodTextChangedProperty, onKeyPressedProperty, onKeyReleasedProperty, onKeyTypedProperty, onMouseClickedProperty, onMouseDragEnteredProperty, onMouseDragExitedProperty, onMouseDraggedProperty, onMouseDragOverProperty, onMouseDragReleasedProperty, onMouseEnteredProperty, onMouseExitedProperty, onMouseMovedProperty, onMousePressedProperty, onMouseReleasedProperty, onRotateProperty, onRotationFinishedProperty, onRotationStartedProperty, onScrollFinishedProperty, onScrollProperty, onScrollStartedProperty, onSwipeDownProperty, onSwipeLeftProperty, onSwipeRightProperty, onSwipeUpProperty, onTouchMovedProperty, onTouchPressedProperty, onTouchReleasedProperty, onTouchStationaryProperty, onZoomFinishedProperty, onZoomProperty, onZoomStartedProperty, opacityProperty, parentProperty, parentToLocal, parentToLocal, parentToLocal, parentToLocal, parentToLocal, pickOnBoundsProperty, pressedProperty, pseudoClassStateChanged, queryAccessibleAttribute, relocate, removeEventFilter, removeEventHandler, requestFocus, resizeRelocate, rotateProperty, rotationAxisProperty, scaleXProperty, scaleYProperty, scaleZProperty, sceneProperty, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, screenToLocal, screenToLocal, screenToLocal, setAccessibleHelp, setAccessibleRole, setAccessibleRoleDescription, setAccessibleText, setBlendMode, setCache, setCacheHint, setClip, setCursor, setDepthTest, setDisable, setDisabled, setEffect, setEventDispatcher, setEventHandler, setFocused, setFocusTraversable, setHover, setId, setInputMethodRequests, setLayoutX, setLayoutY, setManaged, setMouseTransparent, setNodeOrientation, setOnContextMenuRequested, setOnDragDetected, setOnDragDone, setOnDragDropped, setOnDragEntered, setOnDragExited, setOnDragOver, setOnInputMethodTextChanged, setOnKeyPressed, setOnKeyReleased, setOnKeyTyped, setOnMouseClicked, setOnMouseDragEntered, setOnMouseDragExited, setOnMouseDragged, setOnMouseDragOver, setOnMouseDragReleased, setOnMouseEntered, setOnMouseExited, setOnMouseMoved, setOnMousePressed, setOnMouseReleased, setOnRotate, setOnRotationFinished, setOnRotationStarted, setOnScroll, setOnScrollFinished, setOnScrollStarted, setOnSwipeDown, setOnSwipeLeft, setOnSwipeRight, setOnSwipeUp, setOnTouchMoved, setOnTouchPressed, setOnTouchReleased, setOnTouchStationary, setOnZoom, setOnZoomFinished, setOnZoomStarted, setOpacity, setPickOnBounds, setPressed, setRotate, setRotationAxis, setScaleX, setScaleY, setScaleZ, setStyle, setTranslateX, setTranslateY, setTranslateZ, setUserData, setViewOrder, setVisible, snapshot, snapshot, startDragAndDrop, startFullDrag, styleProperty, toBack, toFront, toString, translateXProperty, translateYProperty, translateZProperty, usesMirroring, viewOrderProperty, visibleProperty
Методы, объявленные в классе java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Методы, объявленные в интерфейсе javafx.css.Styleable
getStyleableNode
Подробности свойств
items
public final ObjectProperty<ObservableList<T>> itemsProperty
- См. также:
placeholder
public final ObjectProperty<Node> placeholderProperty
ListView нет контента для отображения. Это происходит, когда модель списка не содержит данных или когда к модели списка применено фильтрование, в результате чего пользователю ничего не отображается.- С:
- JavaFX 8.0
- См. также:
selectionModel
public final ObjectProperty<MultipleSelectionModel<T>> selectionModelProperty
focusModel
public final ObjectProperty<FocusModel<T>> focusModelProperty
orientation
public final ObjectProperty<Orientation> orientationProperty
ListView — может быть как горизонтальной, так и вертикальной.cellFactory
public final ObjectProperty<Callback<ListView<T>,ListCell<T>>> cellFactoryProperty
Установка пользовательской фабрики ячеек откладывает создание всех ячеек, что позволяет полностью настроить ячейку. Внутренне, ListView отвечает за повторное использование ListCells — всё, что необходимо, это чтобы пользовательская фабрика ячеек возвращала из этой функции ListCell, которая может быть использована для представления любого элемента в ListView.
См. документацию класса Cell для получения более подробной информации.
fixedCellSize
public final DoubleProperty fixedCellSizeProperty
Чтобы установить это свойство через CSS, используйте свойство -fx-fixed-cell-size. Не следует путать его со свойством -fx-cell-size. Разница между этими двумя CSS-свойствами заключается в том, что -fx-cell-size задаст размер всех ячеек до указанного размера, но не будет навязывать этот размер (позволяя переменные размеры ячеек и предотвращая возможность повышения производительности). Поэтому, когда важна производительность, используйте -fx-fixed-cell-size вместо -fx-cell-size. Если оба свойства указаны в CSS, -fx-fixed-cell-size имеет приоритет.
- С:
- JavaFX 8.0
- См. также:
editable
public final BooleanProperty editableProperty
- См. также:
editingIndex
public final ReadOnlyIntegerProperty editingIndexProperty
Свойство, используемое для представления индекса элемента, который в данный момент редактируется в ListView, если редактирование происходит, или -1, если ни один элемент не редактируется.
Установить индекс редактирования нельзя, вместо этого необходимо вызвать edit(int).
- См. также:
onEditStart
public final ObjectProperty<EventHandler<ListView.EditEvent<T>>> onEditStartProperty
onEditCommit
public final ObjectProperty<EventHandler<ListView.EditEvent<T>>> onEditCommitProperty
Это свойство используется, когда пользователь выполняет действие, которое должно привести к сохранению его данных редактирования.
Обработчик событий в этом свойстве не должен вызываться напрямую — вместо этого вызовите Cell.commitEdit(java.lang.Object) из вашей пользовательской ListCell. Это обработает срабатывание события, обновление представления и выход из состояния редактирования.
onEditCancel
public final ObjectProperty<EventHandler<ListView.EditEvent<T>>> onEditCancelProperty
onScrollTo
public ObjectProperty<EventHandler<ScrollToEvent<Integer>>> onScrollToProperty
scrollTo(int) или scrollTo(Object)
- С:
- JavaFX 8.0
- См. также:
Подробности конструкторов
ListView
public ListView()
ObservableList, создаётся пустой ObservableList, что означает, что можно напрямую вызвать getItems(), если это необходимо. Однако, как отмечено ранее, это не рекомендуемый подход (вместо этого вызовите setItems(javafx.collections.ObservableList)). См. документацию класса ListView для получения информации о состоянии других свойств по умолчанию.
ListView
public ListView(ObservableList<T> items)
ObservableList, вертикально. Попытка добавить слушатель к ObservableList, чтобы все последующие изменения внутри списка отображались пользователю.
См. документацию класса ListView для получения информации о состоянии других свойств по умолчанию.
- Parameters:
-
items- список элементов
Подробности методов
editAnyEvent
public static <T> EventType<ListView.EditEvent<T>> editAnyEvent()
editStartEvent(), editCommitEvent() и editCancelEvent().- Type Parameters:
-
T- тип объектов, хранящихся в этом ListView - Returns:
- тип события
editStartEvent
public static <T> EventType<ListView.EditEvent<T>> editStartEvent()
- Type Parameters:
-
T- тип объектов, хранящихся в этом ListView - Returns:
- тип события
editCancelEvent
public static <T> EventType<ListView.EditEvent<T>> editCancelEvent()
- Type Parameters:
-
T- тип объектов, хранящихся в этом ListView - Returns:
- тип события
editCommitEvent
public static <T> EventType<ListView.EditEvent<T>> editCommitEvent()
- Type Parameters:
-
T- тип объектов, хранящихся в этом ListView - Returns:
- тип события
setItems
public final void setItems(ObservableList<T> value)
- 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()
- Returns:
- свойство items для этого ListView
- See Also:
placeholderProperty
public final ObjectProperty<Node> placeholderProperty()
Node, отображаемый пользователю, когда ListView не содержит отображаемых данных. Это происходит, когда модель списка не имеет данных или когда к модели списка применено фильтрование, в результате чего пользователю ничего не отображается.- Returns:
- свойство
placeholder - Since:
- JavaFX 8.0
- See Also:
setPlaceholder
public final void setPlaceholder(Node value)
placeholder.- Property description:
Node, отображаемый пользователю, когдаListViewне содержит отображаемых данных. Это происходит, когда модель списка не имеет данных или когда к модели списка применено фильтрование, в результате чего пользователю ничего не отображается.- Parameters:
-
value- значение для свойстваplaceholder - Since:
- JavaFX 8.0
- See Also:
getPlaceholder
public final Node getPlaceholder()
placeholder.- Property description:
Node, отображаемый пользователю, когдаListViewне содержит отображаемых данных. Это происходит, когда модель списка не имеет данных или когда к модели списка применено фильтрование, в результате чего пользователю ничего не отображается.- Returns:
- значение свойства
placeholder - Since:
- JavaFX 8.0
- See Also:
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()
- Returns:
- свойство selectionModel
- See Also:
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()
- Returns:
- свойство FocusModel
- See Also:
setOrientation
public final void setOrientation(Orientation value)
- Parameters:
-
value- ориентация ListView
getOrientation
public final Orientation getOrientation()
- Returns:
- текущая ориентация ListView
orientationProperty
public final ObjectProperty<Orientation> orientationProperty()
ListView - может быть либо горизонтальной, либо вертикальной.- Returns:
- свойство ориентации этого ListView
- See Also:
setCellFactory
public final void setCellFactory(Callback<ListView<T>,ListCell<T>> value)
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 отвечает за повторное использование ListCells - всё, что необходимо, это для пользовательской фабрики ячеек возвращать из этой функции ListCell, которая может быть использована для представления любого элемента в ListView.
Дополнительные сведения см. в документации по классу Cell.
- Возвращает:
- свойство фабрики ячеек
- См. также:
setFixedCellSize
public final void setFixedCellSize(double value)
- Параметры:
-
value- Новое значение фиксированного размера ячейки или значение, меньшее или равное нулю (или Region.USE_COMPUTED_SIZE) для отключения. - С:
- JavaFX 8.0
getFixedCellSize
public final double getFixedCellSize()
- Возвращает:
- Число с плавающей точкой, представляющее фиксированный размер ячейки этого элемента управления, или значение, меньшее или равное нулю, если режим фиксированного размера ячейки отключен.
- С:
- JavaFX 8.0
fixedCellSizeProperty
public final DoubleProperty fixedCellSizeProperty()
Для установки этого свойства через CSS используйте свойство -fx-fixed-cell-size. Не следует путать его со свойством -fx-cell-size. Разница между этими двумя свойствами CSS заключается в том, что -fx-cell-size установит размер всех ячеек до указанного размера, но не будет навязывать это единственный размер (что позволит изменять размеры ячеек и предотвратит возможность повышения производительности). Поэтому, когда важна производительность, используйте -fx-fixed-cell-size вместо -fx-cell-size. Если оба свойства указаны в CSS, -fx-fixed-cell-size имеет приоритет.
- Возвращает:
- свойство фиксированного размера ячейки
- С:
- JavaFX 8.0
- См. также:
setEditable
public final void setEditable(boolean value)
editable.- Описание свойства:
- Указывает, является ли этот ListView редактируемым - только если ListView и ListCells в нём редактируемы, ListCell сможет перейти в состояние редактирования.
- Параметры:
-
value- значение для свойстваeditable - См. также:
isEditable
public final boolean isEditable()
editable.- Описание свойства:
- Указывает, является ли этот ListView редактируемым - только если ListView и ListCells в нём редактируемы, ListCell сможет перейти в состояние редактирования.
- Возвращает:
- значение свойства
editable - См. также:
editableProperty
public final BooleanProperty editableProperty()
- Возвращает:
- свойство editable
- См. также:
getEditingIndex
public final int getEditingIndex()
- Возвращает:
- индекс элемента, который в настоящее время редактируется
editingIndexProperty
public final ReadOnlyIntegerProperty editingIndexProperty()
Свойство, используемое для представления индекса элемента, который в настоящее время редактируется в ListView, если редактирование происходит, или -1, если ни один элемент не редактируется.
Установить индекс редактирования невозможно, вместо этого необходимо вызвать edit(int).
- Возвращает:
- свойство индекса редактирования
- См. также:
setOnEditStart
public final void setOnEditStart(EventHandler<ListView.EditEvent<T>> value)
EventHandler, который будет вызван, когда пользователь начнёт редактирование. Это удобный метод - тот же результат может быть достигнут вызовом addEventHandler(ListView.EDIT_START_EVENT, eventHandler).
- Параметры:
-
value- обработчик событий, который будет вызван, когда пользователь начнёт редактирование
getOnEditStart
public final EventHandler<ListView.EditEvent<T>> getOnEditStart()
EventHandler, который будет вызван, когда пользователь начнёт редактирование.- Возвращает:
- обработчик событий, который будет вызван, когда пользователь начнёт редактирование
onEditStartProperty
public final ObjectProperty<EventHandler<ListView.EditEvent<T>>> onEditStartProperty()
- Возвращает:
- свойство обработчика событий onEditStart
- См. также:
setOnEditCommit
public final void setOnEditCommit(EventHandler<ListView.EditEvent<T>> value)
EventHandler, который будет вызван, когда пользователь завершит редактирование. Это вызывается в рамках метода Cell.commitEdit(java.lang.Object). Это удобный метод - тот же результат может быть достигнут вызовом addEventHandler(ListView.EDIT_START_EVENT, eventHandler).
- Параметры:
-
value- обработчик событий, который будет вызван, когда пользователь завершит редактирование
getOnEditCommit
public final EventHandler<ListView.EditEvent<T>> getOnEditCommit()
EventHandler, который будет вызван, когда пользователь подтвердит редактирование.- Возвращает:
- обработчик событий, который будет вызван, когда пользователь подтвердит редактирование
onEditCommitProperty
public final ObjectProperty<EventHandler<ListView.EditEvent<T>>> onEditCommitProperty()
Это свойство используется, когда пользователь выполняет действие, которое должно привести к сохранению его входных данных редактирования.
Обработчик событий в этом свойстве не должен вызываться напрямую - вместо этого вызовите Cell.commitEdit(java.lang.Object) в своём пользовательском ListCell. Это обработает срабатывание этого события, обновление представления и переход из состояния редактирования.
- Возвращает:
- свойство обработчика событий onEditCommit
- См. также:
setOnEditCancel
public final void setOnEditCancel(EventHandler<ListView.EditEvent<T>> value)
EventHandler, который будет вызван, когда пользователь отменит редактирование.- Параметры:
-
value- обработчик событий, который будет вызван, когда пользователь отменит редактирование
getOnEditCancel
public final EventHandler<ListView.EditEvent<T>> getOnEditCancel()
EventHandler, который будет вызван, когда пользователь отменит редактирование.- Возвращает:
- обработчик событий, который будет вызван, когда пользователь отменит редактирование
onEditCancelProperty
public final ObjectProperty<EventHandler<ListView.EditEvent<T>>> onEditCancelProperty()
- Возвращает:
- свойство обработчика событий onEditCancel
- См. также:
редактировать
public void edit(int itemIndex)
editable. После вызова этого метода, если текущий cellFactoryProperty() настроен для поддержки редактирования, ячейка переключится на визуальное состояние, позволяющее пользователю ввести данные.- Параметры:
-
itemIndex- Индекс элемента в ListView, который необходимо отредактировать.
прокрутитьДо
public void scrollTo(int index)
- Параметры:
-
index- Индекс, который должен быть виден пользователю, предполагая, конечно, что он больше или равен 0 и меньше размера списка элементов, содержащихся в данном ListView.
прокрутитьДо
public void scrollTo(T object)
- Параметры:
-
object- Объект, который должен быть виден пользователю. - С:
- JavaFX 8.0
setOnScrollTo
public void setOnScrollTo(EventHandler<ScrollToEvent<Integer>> value)
onScrollTo.- Описание свойства:
- Вызывается при запросе прокрутки индекса в область просмотра с использованием
scrollTo(int)илиscrollTo(Object) - Параметры:
-
value- значение свойстваonScrollTo - С:
- JavaFX 8.0
- См. также:
getOnScrollTo
public EventHandler<ScrollToEvent<Integer>> getOnScrollTo()
onScrollTo.- Описание свойства:
- Вызывается при запросе прокрутки индекса в область просмотра с использованием
scrollTo(int)илиscrollTo(Object) - Возвращает:
- значение свойства
onScrollTo - С:
- JavaFX 8.0
- См. также:
onScrollToProperty
public ObjectProperty<EventHandler<ScrollToEvent<Integer>>> onScrollToProperty()
scrollTo(int) или scrollTo(Object)
- Возвращает:
- свойство
onScrollTo - С:
- JavaFX 8.0
- См. также:
обновить
public void refresh()
refresh() заставляет элемент управления ListView пересоздать и повторно заполнить ячейки, необходимые для заполнения визуальных границ элемента управления. Другими словами, это заставляет ListView обновить отображаемую пользователю информацию. Это полезно в тех случаях, когда основной источник данных изменился таким образом, что ListView этого не обнаруживает.- С:
- JavaFX 8u60
getClassCssMetaData
public static List<CssMetaData<? extends Styleable,?>> getClassCssMetaData()
CssMetaData, связанное с этим классом, что может включать CssMetaData его суперклассов.- Возвращает:
CssMetaData- С:
- JavaFX 8.0
getControlCssMetaData
public List<CssMetaData<? extends Styleable,?>> getControlCssMetaData()
- Переопределяет:
-
getControlCssMetaDataв классеControl - Возвращает:
- неизменяемый список стилизуемых свойств элемента управления CSS
- С:
- JavaFX 8.0
© 2008, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from JavaFX API Documentation.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Java, JavaFX and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.