Класс 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. 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 для более подробного описания того, как написать пользовательские ячейки.
Предупреждение: узлы не должны вставляться непосредственно в список элементов
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
- См. также:
Краткое описание вложенных классов
| Модификатор и тип | Класс | Описание |
|---|---|---|
static class |
ListView.EditEvent<T> |
Подкласс Event, используемый в ListView для представления событий, связанных с редактированием. |
Краткое описание свойств
| Тип | Свойство | Описание |
|---|---|---|
final ObjectProperty |
cellFactory |
Установка пользовательской фабрики ячеек откладывает создание всех ячеек, позволяя полностью настроить ячейку. |
final BooleanProperty |
editable |
Указывает, является ли этот ListView редактируемым. Ячейка ListCell сможет перейти в состояние редактирования только если ListView и ListCells в нем являются редактируемыми. |
final ReadOnlyIntegerProperty |
editingIndex |
Свойство, используемое для представления индекса элемента, который в данный момент редактируется в ListView, если редактирование происходит, или -1, если ни один элемент не редактируется. |
final DoubleProperty |
fixedCellSize |
Указывает, имеют ли ячейки этого элемента фиксированную высоту (указанного значения). |
final ObjectProperty |
focusModel |
FocusModel предоставляет API, с помощью которого можно получить и установить фокус на отдельном элементе в ListView. |
final ObjectProperty |
items |
Базовая модель данных для ListView. |
final ObjectProperty |
onEditCancel |
Обработчик событий, который будет вызван, когда пользователь отменяет редактирование ячейки. |
final ObjectProperty |
onEditCommit |
Это свойство используется, когда пользователь выполняет действие, которое должно привести к сохранению его ввода при редактировании. |
final ObjectProperty |
onEditStart |
Обработчик событий, который будет вызван, когда пользователь успешно начинает редактирование. |
final ObjectProperty |
onScrollTo |
Вызывается, когда есть запрос на прокрутку индекса в область видимости с помощью scrollTo(int) или scrollTo(Object)
|
final ObjectProperty |
orientation |
Ориентация ListView - может быть горизонтальной или вертикальной. |
final ObjectProperty |
placeholder |
Node для отображения пользователю, когда в ListView нет отображаемого содержимого. |
final ObjectProperty |
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
Краткое описание полей
Поля, объявленные в классе javafx.scene.layout.Region
USE_COMPUTED_SIZE, USE_PREF_SIZE
Поля, объявленные в классе javafx.scene.Node
BASELINE_OFFSET_SAME_AS_HEIGHT
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
ListView() |
Создает стандартный ListView, который будет отображать содержимое вертикально. |
ListView |
Создает стандартный ListView, который будет выводить содержимое, полученное из предоставленного ObservableList, вертикально. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
final ObjectProperty |
cellFactoryProperty() |
Установка пользовательской фабрики ячеек приводит к отложению создания всех ячеек, что позволяет полностью настроить ячейки. |
void |
edit |
Инструктирует ListView начать редактирование элемента в заданном индексе, если ListView является editable. |
final BooleanProperty |
editableProperty() |
Указывает, является ли ListView редактируемым — только если ListView и ячейки списка в нём являются редактируемыми, ячейка списка сможет перейти в состояние редактирования. |
static <T> EventType |
editAnyEvent() |
Тип события, указывающий на то, что произошло какое-то событие редактирования. |
static <T> EventType |
editCancelEvent() |
Тип события, используемый для указания на то, что событие редактирования только что было отменено в ListView, на котором было сгенерировано событие. |
static <T> EventType |
editCommitEvent() |
Тип события, используемый для указания на то, что событие редактирования было подтверждено в ListView, на котором было сгенерировано событие. |
final ReadOnlyIntegerProperty |
editingIndexProperty() |
Свойство, используемое для представления индекса элемента, который в данный момент редактируется в ListView, если происходит редактирование, или -1, если ни один элемент не редактируется. |
static <T> EventType |
editStartEvent() |
Тип события, используемый для указания на то, что событие редактирования началось в ListView, на котором было сгенерировано событие. |
final DoubleProperty |
fixedCellSizeProperty() |
Указывает, имеет ли этот элемент ячейки с фиксированной высотой (заданного значения). |
final ObjectProperty |
focusModelProperty() |
Модель фокусировки предоставляет API, с помощью которого можно получить и установить фокус на отдельном элементе в ListView. |
final Callback |
getCellFactory() |
Возвращает текущую фабрику ячеек. |
static List |
getClassCssMetaData() |
Получает CssMetaData, связанную с этим классом, которая может включать в себя CssMetaData его суперклассов. |
List |
getControlCssMetaData() |
Возвращает неизменяемый список стилизуемых CSS-свойств элемента управления. |
final int |
getEditingIndex() |
Возвращает индекс элемента, который в данный момент редактируется в ListView, или -1, если ни один элемент не редактируется. |
final double |
getFixedCellSize() |
Возвращает значение фиксированного размера ячейки. |
final FocusModel |
getFocusModel() |
Возвращает текущую установленную FocusModel. |
final ObservableList |
getItems() |
Возвращает ObservableList, содержащий элементы, которые в данный момент отображаются пользователю. |
final EventHandler |
getOnEditCancel() |
Возвращает EventHandler, который будет вызван, когда пользователь отменяет редактирование. |
final EventHandler |
getOnEditCommit() |
Возвращает EventHandler, который будет вызван, когда пользователь подтверждает редактирование. |
final EventHandler |
getOnEditStart() |
Возвращает EventHandler, который будет вызван, когда пользователь начинает редактирование. |
final EventHandler |
getOnScrollTo() |
Получает значение свойства onScrollTo. |
final Orientation |
getOrientation() |
Возвращает текущую ориентацию ListView, которая определяет, прокручивается ли она вертикально или горизонтально. |
final Node |
getPlaceholder() |
Получает значение свойства placeholder. |
final MultipleSelectionModel |
getSelectionModel() |
Возвращает текущую установленную модель выбора. |
final boolean |
isEditable() |
Получает значение свойства editable. |
final ObjectProperty |
itemsProperty() |
Базовая модель данных для ListView. |
final ObjectProperty |
onEditCancelProperty() |
Обработчик событий будет вызван, когда пользователь отменяет редактирование ячейки. |
final ObjectProperty |
onEditCommitProperty() |
Это свойство используется, когда пользователь выполняет действие, которое должно привести к сохранению их ввода в редактировании. |
final ObjectProperty |
onEditStartProperty() |
Этот обработчик событий будет вызван, когда пользователь успешно инициирует редактирование. |
final ObjectProperty |
onScrollToProperty() |
Вызывается, когда поступает запрос на прокрутку индекса в область видимости с помощью scrollTo(int) или scrollTo(Object)
|
final ObjectProperty |
orientationProperty() |
Ориентация ListView — может быть горизонтальной или вертикальной. |
final ObjectProperty |
placeholderProperty() |
Node для отображения, когда у ListView нет контента для отображения. |
void |
refresh() |
Вызов refresh() заставляет элемент управления ListView пересоздать и повторно заполнить ячейки, необходимые для заполнения визуальных границ элемента управления. |
void |
scrollTo |
Прокручивает ListView таким образом, чтобы элемент в заданном индексе был виден конечному пользователю. |
void |
scrollTo |
Прокручивает ListView так, чтобы данный объект был виден в области просмотра. |
final ObjectProperty |
selectionModelProperty() |
Модель выбора предоставляет 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, который будет вызван, когда пользователь начнёт редактирование. |
final 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, requestFocusTraversal, 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
- С:
- JavaFX 8.0
- См. также:
selectionModel
public final ObjectProperty<MultipleSelectionModel<T>> selectionModelProperty
- См. также:
focusModel
public final ObjectProperty<FocusModel<T>> focusModelProperty
- См. также:
orientation
public final ObjectProperty<Orientation> orientationProperty
- См. также:
cellFactory
public final ObjectProperty<Callback<ListView<T>,ListCell<T>>> cellFactoryProperty
Установка пользовательского cell factory приводит к отложению создания всех ячеек, что позволяет полностью настроить ячейку. Внутренне ListView отвечает за повторное использование ListCells — все, что необходимо, это чтобы пользовательский cell factory возвращал 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 final 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 для получения подробной информации о состоянии других свойств по умолчанию.
- Параметры:
-
items- список элементов
Подробное описание методов
editAnyEvent
public static <T> EventType<ListView.EditEvent<T>> editAnyEvent()
editStartEvent(), editCommitEvent() и editCancelEvent().- Параметры типа:
-
T- тип объектов, хранящихся в этом ListView - Возвращает:
- тип события
editStartEvent
public static <T> EventType<ListView.EditEvent<T>> editStartEvent()
- Параметры типа:
-
T- тип объектов, хранящихся в этом ListView - Возвращает:
- тип события
editCancelEvent
public static <T> EventType<ListView.EditEvent<T>> editCancelEvent()
- Параметры типа:
-
T- тип объектов, хранящихся в этом ListView - Возвращает:
- тип события
editCommitEvent
public static <T> EventType<ListView.EditEvent<T>> editCommitEvent()
- Параметры типа:
-
T- тип объектов, хранящихся в этом ListView - Возвращает:
- тип события
setItems
public final void setItems(ObservableList<T> value)
- Параметры:
-
value- список элементов для этого ListView
getItems
public final ObservableList<T> getItems()
ObservableList, содержащий элементы, которые в данный момент отображаются пользователю. Может быть null, если setItems(javafx.collections.ObservableList) был вызван ранее, но по умолчанию это пустой ObservableList.- Возвращает:
- ObservableList, содержащий элементы для отображения пользователю, или null, если элементы ранее были установлены равными null.
itemsProperty
public final ObjectProperty<ObservableList<T>> itemsProperty()
- Возвращает:
- свойство items для этого ListView
- См. также:
placeholderProperty
public final ObjectProperty<Node> placeholderProperty()
Node, отображаемый пользователю, когда у ListView нет отображаемого содержимого. Это происходит, когда модель списка не содержит данных или когда к модели списка применено фильтрование, в результате чего пользователю нечего отображать.- Возвращает:
- свойство
placeholder - С тех пор как:
- JavaFX 8.0
- См. также:
setPlaceholder
public final void setPlaceholder(Node value)
placeholder.- Описание свойства:
Node, отображаемый пользователю, когда уListViewнет отображаемого содержимого. Это происходит, когда модель списка не содержит данных или когда к модели списка применено фильтрование, в результате чего пользователю нечего отображать.- Параметры:
-
value- значение свойстваplaceholder - С тех пор как:
- JavaFX 8.0
- См. также:
getPlaceholder
public final Node getPlaceholder()
placeholder.- Описание свойства:
Node, отображаемый пользователю, когда уListViewнет отображаемого содержимого. Это происходит, когда модель списка не содержит данных или когда к модели списка применено фильтрование, в результате чего пользователю нечего отображать.- Возвращает:
- значение свойства
placeholder - С тех пор как:
- JavaFX 8.0
- См. также:
setSelectionModel
public final void setSelectionModel(MultipleSelectionModel<T> value)
MultipleSelectionModel для использования в ListView. Несмотря на то, что ListView требует MultipleSelectionModel, можно настроить его для поддержки только одного выбора (см. MultipleSelectionModel.setSelectionMode(javafx.scene.control.SelectionMode) для получения дополнительной информации).- Параметры:
-
value- MultipleSelectionModel для использования в этом ListView
getSelectionModel
public final MultipleSelectionModel<T> getSelectionModel()
- Возвращает:
- текущую установленную модель выбора
selectionModelProperty
public final ObjectProperty<MultipleSelectionModel<T>> selectionModelProperty()
- Возвращает:
- свойство selectionModel
- См. также:
setFocusModel
public final void setFocusModel(FocusModel<T> value)
FocusModel для использования в ListView.- Параметры:
-
value- FocusModel для использования в ListView
getFocusModel
public final FocusModel<T> getFocusModel()
FocusModel.- Возвращает:
- текущую установленную модель FocusModel
focusModelProperty
public final ObjectProperty<FocusModel<T>> focusModelProperty()
- Возвращает:
- свойство FocusModel
- См. также:
setOrientation
public final void setOrientation(Orientation value)
- Параметры:
-
value- ориентация ListView
getOrientation
public final Orientation getOrientation()
- Возвращает:
- текущую ориентацию ListView
orientationProperty
public final ObjectProperty<Orientation> orientationProperty()
ListView — может быть горизонтальной или вертикальной.- Возвращает:
- свойство orientation этого ListView
- См. также:
setCellFactory
public final void setCellFactory(Callback<ListView<T>,ListCell<T>> value)
ListCell быть удалены, и созданы новые ListCell с новой фабрикой ячеек.- Параметры:
-
value- фабрика ячеек для использования в этом ListView
getCellFactory
public final Callback<ListView<T>,ListCell<T>> getCellFactory()
- Возвращает:
- текущую фабрику ячеек
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
- См. также:
edit
public void edit(int itemIndex)
editable. После вызова этого метода, если текущий cellFactoryProperty() настроен для поддержки редактирования, ячейка изменит своё визуальное состояние, чтобы разрешить ввод пользователем.- Параметры:
-
itemIndex— Индекс элемента в ListView, который должен быть отредактирован.
scrollTo
public void scrollTo(int index)
- Параметры:
-
index— Индекс, который должен стать видимым для пользователя, предполагая, конечно, что он больше или равен 0 и меньше размера списка элементов, содержащегося в заданном ListView.
scrollTo
public void scrollTo(T object)
- Параметры:
-
object— Объект, который должен быть виден пользователю. - С:
- JavaFX 8.0
setOnScrollTo
public final void setOnScrollTo(EventHandler<ScrollToEvent<Integer>> value)
onScrollTo.- Описание свойства:
- Вызывается при запросе прокрутки индекса в область видимости с помощью
scrollTo(int)илиscrollTo(Object) - Параметры:
-
value— значение для свойстваonScrollTo - С:
- JavaFX 8.0
- См. также:
getOnScrollTo
public final EventHandler<ScrollToEvent<Integer>> getOnScrollTo()
onScrollTo.- Описание свойства:
- Вызывается при запросе прокрутки индекса в область видимости с помощью
scrollTo(int)илиscrollTo(Object) - Возвращает:
- значение свойства
onScrollTo - С:
- JavaFX 8.0
- См. также:
onScrollToProperty
public final ObjectProperty<EventHandler<ScrollToEvent<Integer>>> onScrollToProperty()
scrollTo(int) или scrollTo(Object)
- Возвращает:
- свойство
onScrollTo - С:
- JavaFX 8.0
- См. также:
refresh
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.