public class GridView<T>
extends javafx.scene.control.Control
getItems() in a
visual, scrollable, grid-like fashion. In other words, whereas a ListView
shows one ListCell per row, in a GridView there will be zero or more
GridCell instances on a single row.
This approach means that the number of GridCell instances instantiated will be a significantly smaller number than the number of items in the GridView items list, as only enough GridCells are created for the visible area of the GridView. This helps to improve performance and reduce memory consumption.
Because each GridCell extends from Cell, the same approach
of cell factories that is taken in other UI controls is also taken in GridView.
This has two main benefits:
text property set, whereas a more complex
GridCell can have an arbitrarily complex scenegraph set inside its
graphic property (as it accepts any Node).
The following screenshot shows the GridView with the ColorGridCell
being used:
To create this GridView was simple. Note that the majority of the code below is related to randomly creating the colours to be represented:
GridView<Color> myGrid = new GridView<>(list);
myGrid.setCellFactory(new Callback<GridView<Color>, GridCell<Color>>() {
public GridCell<Color> call(GridView<Color> gridView) {
return new ColorGridCell();
}
});
Random r = new Random(System.currentTimeMillis());
for(int i = 0; i < 500; i++) {
list.add(new Color(r.nextDouble(), r.nextDouble(), r.nextDouble(), 1.0));
}
GridCell| Type | Property and Description |
|---|---|
javafx.beans.property.ObjectProperty<javafx.util.Callback<GridView<T>,GridCell<T>>> |
cellFactory
Property representing the cell factory that is currently set in this
GridView, or null if no cell factory has been set (in which case the
default cell factory provided by the GridView skin will be used).
|
javafx.beans.property.DoubleProperty |
cellHeight
Property representing the height that all cells should be.
|
javafx.beans.property.DoubleProperty |
cellWidth
Property representing the width that all cells should be.
|
javafx.beans.property.DoubleProperty |
horizontalCellSpacing
Property for specifying how much spacing there is between each cell
in a row (i.e.
|
javafx.beans.property.ObjectProperty<javafx.collections.ObservableList<T>> |
items
The items to be displayed in the GridView (as rendered via
GridCell
instances). |
javafx.beans.property.DoubleProperty |
verticalCellSpacing
Property for specifying how much spacing there is between each cell
in a column (i.e.
|
contextMenu, skinClassName, skin, tooltipbackground, border, cacheShape, centerShape, height, insets, maxHeight, maxWidth, minHeight, minWidth, opaqueInsets, padding, prefHeight, prefWidth, scaleShape, shape, snapToPixel, widthaccessibleHelp, accessibleRoleDescription, accessibleRole, accessibleText, blendMode, boundsInLocal, boundsInParent, cacheHint, cache, clip, cursor, depthTest, disabled, disable, effectiveNodeOrientation, effect, eventDispatcher, focused, focusTraversable, hover, id, impl_showMnemonics, impl_treeVisible, inputMethodRequests, layoutBounds, layoutX, layoutY, localToParentTransform, localToSceneTransform, managed, mouseTransparent, nodeOrientation, onContextMenuRequested, onDragDetected, onDragDone, onDragDropped, onDragEntered, onDragExited, onDragOver, onInputMethodTextChanged, onKeyPressed, onKeyReleased, onKeyTyped, onMouseClicked, onMouseDragEntered, onMouseDragExited, onMouseDragged, onMouseDragOver, onMouseDragReleased, onMouseEntered, onMouseExited, onMouseMoved, onMousePressed, onMouseReleased, onRotate, onRotationFinished, onRotationStarted, onScrollFinished, onScroll, onScrollStarted, onSwipeDown, onSwipeLeft, onSwipeRight, onSwipeUp, onTouchMoved, onTouchPressed, onTouchReleased, onTouchStationary, onZoomFinished, onZoom, onZoomStarted, opacity, parent, pickOnBounds, pressed, rotate, rotationAxis, scaleX, scaleY, scaleZ, scene, style, translateX, translateY, translateZ, visible| Constructor and Description |
|---|
GridView()
Creates a default, empty GridView control.
|
GridView(javafx.collections.ObservableList<T> items)
Creates a default GridView control with the provided items prepopulated.
|
| Modifier and Type | Method and Description |
|---|---|
javafx.beans.property.ObjectProperty<javafx.util.Callback<GridView<T>,GridCell<T>>> |
cellFactoryProperty()
Property representing the cell factory that is currently set in this
GridView, or null if no cell factory has been set (in which case the
default cell factory provided by the GridView skin will be used).
|
javafx.beans.property.DoubleProperty |
cellHeightProperty()
Property representing the height that all cells should be.
|
javafx.beans.property.DoubleProperty |
cellWidthProperty()
Property representing the width that all cells should be.
|
protected javafx.scene.control.Skin<?> |
createDefaultSkin() |
javafx.util.Callback<GridView<T>,GridCell<T>> |
getCellFactory()
Returns the cell factory that will be used to create
GridCell
instances to show in the GridView. |
double |
getCellHeight()
Returns the height that all cells should be.
|
double |
getCellWidth()
Returns the width that all cells should be.
|
static java.util.List<javafx.css.CssMetaData<? extends javafx.css.Styleable,?>> |
getClassCssMetaData() |
java.util.List<javafx.css.CssMetaData<? extends javafx.css.Styleable,?>> |
getControlCssMetaData() |
double |
getHorizontalCellSpacing()
Returns the amount of horizontal spacing there is between cells in
the same row.
|
javafx.collections.ObservableList<T> |
getItems()
Returns the currently-in-use items list that is being used by the
GridView.
|
java.lang.String |
getUserAgentStylesheet() |
protected java.lang.String |
getUserAgentStylesheet(java.lang.Class<?> clazz,
java.lang.String fileName)
A helper method that ensures that the resource based lookup of the user
agent stylesheet only happens once.
|
double |
getVerticalCellSpacing()
Returns the amount of vertical spacing there is between cells in
the same column.
|
javafx.beans.property.DoubleProperty |
horizontalCellSpacingProperty()
Property for specifying how much spacing there is between each cell
in a row (i.e.
|
javafx.beans.property.ObjectProperty<javafx.collections.ObservableList<T>> |
itemsProperty()
The items to be displayed in the GridView (as rendered via
GridCell
instances). |
void |
setCellFactory(javafx.util.Callback<GridView<T>,GridCell<T>> value)
Sets the cell factory to use to create
GridCell instances to
show in the GridView. |
void |
setCellHeight(double value)
Sets the height that all cells should be.
|
void |
setCellWidth(double value)
Sets the width that all cells should be.
|
void |
setHorizontalCellSpacing(double value)
Sets the amount of horizontal spacing there should be between cells in
the same row.
|
void |
setItems(javafx.collections.ObservableList<T> value)
Sets a new
ObservableList as the items list underlying GridView. |
void |
setVerticalCellSpacing(double value)
Sets the amount of vertical spacing there should be between cells in
the same column.
|
javafx.beans.property.DoubleProperty |
verticalCellSpacingProperty()
Property for specifying how much spacing there is between each cell
in a column (i.e.
|
computeMaxHeight, computeMaxWidth, computeMinHeight, computeMinWidth, computePrefHeight, computePrefWidth, contextMenuProperty, executeAccessibleAction, getBaselineOffset, getContextMenu, getCssMetaData, getSkin, getTooltip, impl_cssGetFocusTraversableInitialValue, impl_processCSS, isResizable, layoutChildren, queryAccessibleAttribute, setContextMenu, setSkin, setTooltip, skinClassNameProperty, skinProperty, tooltipPropertybackgroundProperty, borderProperty, cacheShapeProperty, centerShapeProperty, getBackground, getBorder, getHeight, getInsets, getMaxHeight, getMaxWidth, getMinHeight, getMinWidth, getOpaqueInsets, getPadding, getPrefHeight, getPrefWidth, getShape, getWidth, heightProperty, impl_computeContains, impl_computeGeomBounds, impl_computeLayoutBounds, impl_createPeer, impl_notifyLayoutBoundsChanged, impl_pickNodeLocal, impl_updatePeer, insetsProperty, isCacheShape, isCenterShape, isScaleShape, isSnapToPixel, layoutInArea, layoutInArea, layoutInArea, layoutInArea, maxHeight, maxHeightProperty, maxWidth, maxWidthProperty, minHeight, minHeightProperty, minWidth, minWidthProperty, opaqueInsetsProperty, paddingProperty, positionInArea, positionInArea, prefHeight, prefHeightProperty, prefWidth, prefWidthProperty, resize, scaleShapeProperty, setBackground, setBorder, setCacheShape, setCenterShape, setHeight, setMaxHeight, setMaxSize, setMaxWidth, setMinHeight, setMinSize, setMinWidth, setOpaqueInsets, setPadding, setPrefHeight, setPrefSize, setPrefWidth, setScaleShape, setShape, setSnapToPixel, setWidth, shapeProperty, snappedBottomInset, snappedLeftInset, snappedRightInset, snappedTopInset, snapPosition, snapSize, snapSpace, snapToPixelProperty, widthPropertygetChildren, getChildrenUnmodifiable, getImpl_traversalEngine, getManagedChildren, getStylesheets, impl_getAllParentStylesheets, impl_processMXNode, impl_traversalEngineProperty, isNeedsLayout, layout, lookup, needsLayoutProperty, requestLayout, requestParentLayout, setImpl_traversalEngine, setNeedsLayout, updateBoundsaccessibleHelpProperty, accessibleRoleDescriptionProperty, accessibleRoleProperty, accessibleTextProperty, addEventFilter, addEventHandler, applyCss, autosize, blendModeProperty, boundsInLocalProperty, boundsInParentProperty, buildEventDispatchChain, cacheHintProperty, cacheProperty, clipProperty, computeAreaInScreen, contains, contains, containsBounds, cursorProperty, depthTestProperty, disabledProperty, disableProperty, effectiveNodeOrientationProperty, effectProperty, eventDispatcherProperty, fireEvent, focusedProperty, focusTraversableProperty, getAccessibleHelp, getAccessibleRole, getAccessibleRoleDescription, getAccessibleText, getBlendMode, getBoundsInLocal, getBoundsInParent, getCacheHint, getClip, getContentBias, getCursor, getDepthTest, getEffect, getEffectiveNodeOrientation, getEventDispatcher, getId, getInputMethodRequests, getLayoutBounds, getLayoutX, getLayoutY, getLocalToParentTransform, getLocalToSceneTransform, getNodeOrientation, getOnContextMenuRequested, getOnDragDetected, getOnDragDone, getOnDragDropped, getOnDragEntered, getOnDragExited, getOnDragOver, getOnInputMethodTextChanged, getOnKeyPressed, getOnKeyReleased, getOnKeyTyped, getOnMouseClicked, getOnMouseDragEntered, getOnMouseDragExited, getOnMouseDragged, getOnMouseDragOver, getOnMouseDragReleased, getOnMouseEntered, getOnMouseExited, getOnMouseMoved, getOnMousePressed, getOnMouseReleased, getOnRotate, getOnRotationFinished, getOnRotationStarted, getOnScroll, getOnScrollFinished, getOnScrollStarted, getOnSwipeDown, getOnSwipeLeft, getOnSwipeRight, getOnSwipeUp, getOnTouchMoved, getOnTouchPressed, getOnTouchReleased, getOnTouchStationary, getOnZoom, getOnZoomFinished, getOnZoomStarted, getOpacity, getParent, getProperties, getPseudoClassStates, getRotate, getRotationAxis, getScaleX, getScaleY, getScaleZ, getScene, getStyle, getStyleableParent, getStyleClass, getTransforms, getTranslateX, getTranslateY, getTranslateZ, getTypeSelector, getUserData, hasProperties, hoverProperty, idProperty, impl_clearDirty, impl_computeIntersects, impl_cssGetCursorInitialValue, impl_findStyles, impl_geomChanged, impl_getLeafTransform, impl_getMatchingStyles, impl_getPeer, impl_getPivotX, impl_getPivotY, impl_getPivotZ, impl_getStyleMap, impl_hasTransforms, impl_intersects, impl_intersectsBounds, impl_isDirty, impl_isDirtyEmpty, impl_isShowMnemonics, impl_isTreeVisible, impl_layoutBoundsChanged, impl_markDirty, impl_pickNode, impl_processCSS, impl_reapplyCSS, impl_setShowMnemonics, impl_setStyleMap, impl_showMnemonicsProperty, impl_syncPeer, impl_transformsChanged, impl_traverse, impl_treeVisibleProperty, inputMethodRequestsProperty, intersects, intersects, isCache, isDisable, isDisabled, isFocused, isFocusTraversable, isHover, isManaged, isMouseTransparent, isPickOnBounds, isPressed, isVisible, layoutBoundsProperty, layoutXProperty, layoutYProperty, localToParent, localToParent, localToParent, localToParent, localToParent, localToParentTransformProperty, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToSceneTransformProperty, localToScreen, localToScreen, localToScreen, localToScreen, localToScreen, lookupAll, managedProperty, mouseTransparentProperty, nodeOrientationProperty, notifyAccessibleAttributeChanged, onContextMenuRequestedProperty, onDragDetectedProperty, onDragDoneProperty, onDragDroppedProperty, onDragEnteredProperty, onDragExitedProperty, onDragOverProperty, onInputMethodTextChangedProperty, onKeyPressedProperty, onKeyReleasedProperty, onKeyTypedProperty, onMouseClickedProperty, onMouseDragEnteredProperty, onMouseDragExitedProperty, onMouseDraggedProperty, onMouseDragOverProperty, onMouseDragReleasedProperty, onMouseEnteredProperty, onMouseExitedProperty, onMouseMovedProperty, onMousePressedProperty, onMouseReleasedProperty, onRotateProperty, onRotationFinishedProperty, onRotationStartedProperty, onScrollFinishedProperty, onScrollProperty, onScrollStartedProperty, onSwipeDownProperty, onSwipeLeftProperty, onSwipeRightProperty, onSwipeUpProperty, onTouchMovedProperty, onTouchPressedProperty, onTouchReleasedProperty, onTouchStationaryProperty, onZoomFinishedProperty, onZoomProperty, onZoomStartedProperty, opacityProperty, parentProperty, parentToLocal, parentToLocal, parentToLocal, parentToLocal, parentToLocal, pickOnBoundsProperty, pressedProperty, pseudoClassStateChanged, relocate, removeEventFilter, removeEventHandler, requestFocus, resizeRelocate, rotateProperty, rotationAxisProperty, scaleXProperty, scaleYProperty, scaleZProperty, sceneProperty, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, screenToLocal, screenToLocal, screenToLocal, setAccessibleHelp, setAccessibleRole, setAccessibleRoleDescription, setAccessibleText, setBlendMode, setCache, setCacheHint, setClip, setCursor, setDepthTest, setDisable, setDisabled, setEffect, setEventDispatcher, setEventHandler, setFocused, setFocusTraversable, setHover, setId, setInputMethodRequests, setLayoutX, setLayoutY, setManaged, setMouseTransparent, setNodeOrientation, setOnContextMenuRequested, setOnDragDetected, setOnDragDone, setOnDragDropped, setOnDragEntered, setOnDragExited, setOnDragOver, setOnInputMethodTextChanged, setOnKeyPressed, setOnKeyReleased, setOnKeyTyped, setOnMouseClicked, setOnMouseDragEntered, setOnMouseDragExited, setOnMouseDragged, setOnMouseDragOver, setOnMouseDragReleased, setOnMouseEntered, setOnMouseExited, setOnMouseMoved, setOnMousePressed, setOnMouseReleased, setOnRotate, setOnRotationFinished, setOnRotationStarted, setOnScroll, setOnScrollFinished, setOnScrollStarted, setOnSwipeDown, setOnSwipeLeft, setOnSwipeRight, setOnSwipeUp, setOnTouchMoved, setOnTouchPressed, setOnTouchReleased, setOnTouchStationary, setOnZoom, setOnZoomFinished, setOnZoomStarted, setOpacity, setPickOnBounds, setPressed, setRotate, setRotationAxis, setScaleX, setScaleY, setScaleZ, setStyle, setTranslateX, setTranslateY, setTranslateZ, setUserData, setVisible, snapshot, snapshot, startDragAndDrop, startFullDrag, styleProperty, toBack, toFront, toString, translateXProperty, translateYProperty, translateZProperty, usesMirroring, visiblePropertypublic final javafx.beans.property.DoubleProperty horizontalCellSpacingProperty
public final javafx.beans.property.DoubleProperty verticalCellSpacingProperty
public final javafx.beans.property.DoubleProperty cellWidthProperty
getCellWidth(),
setCellWidth(double)public final javafx.beans.property.DoubleProperty cellHeightProperty
getCellHeight(),
setCellHeight(double)public final javafx.beans.property.ObjectProperty<javafx.util.Callback<GridView<T>,GridCell<T>>> cellFactoryProperty
getCellFactory(),
setCellFactory(Callback)public final javafx.beans.property.ObjectProperty<javafx.collections.ObservableList<T>> itemsProperty
GridCell
instances). For example, if the ColorGridCell were being used
(as in the case at the top of this class documentation), this items list
would be populated with Color values. It is important to
appreciate that the items list is used for the data, not the rendering.
What is meant by this is that the items list should contain Color values,
not the nodes that represent the Color. The actual rendering
should be left up to the cell factory,
where it will take the Color value and create / update the display as
necessary.getItems(),
setItems(ObservableList)public GridView()
public GridView(javafx.collections.ObservableList<T> items)
items - The items to display inside the GridView.protected javafx.scene.control.Skin<?> createDefaultSkin()
createDefaultSkin in class javafx.scene.control.Controlpublic java.lang.String getUserAgentStylesheet()
getUserAgentStylesheet in class javafx.scene.layout.Regionpublic final javafx.beans.property.DoubleProperty horizontalCellSpacingProperty()
public final void setHorizontalCellSpacing(double value)
value - The amount of spacing to use.public final double getHorizontalCellSpacing()
public final javafx.beans.property.DoubleProperty verticalCellSpacingProperty()
public final void setVerticalCellSpacing(double value)
value - The amount of spacing to use.public final double getVerticalCellSpacing()
public final javafx.beans.property.DoubleProperty cellWidthProperty()
getCellWidth(),
setCellWidth(double)public final void setCellWidth(double value)
public final double getCellWidth()
public final javafx.beans.property.DoubleProperty cellHeightProperty()
getCellHeight(),
setCellHeight(double)public final void setCellHeight(double value)
public final double getCellHeight()
public final javafx.beans.property.ObjectProperty<javafx.util.Callback<GridView<T>,GridCell<T>>> cellFactoryProperty()
getCellFactory(),
setCellFactory(Callback)public final void setCellFactory(javafx.util.Callback<GridView<T>,GridCell<T>> value)
GridCell instances to
show in the GridView.public final javafx.util.Callback<GridView<T>,GridCell<T>> getCellFactory()
GridCell
instances to show in the GridView.public final javafx.beans.property.ObjectProperty<javafx.collections.ObservableList<T>> itemsProperty()
GridCell
instances). For example, if the ColorGridCell were being used
(as in the case at the top of this class documentation), this items list
would be populated with Color values. It is important to
appreciate that the items list is used for the data, not the rendering.
What is meant by this is that the items list should contain Color values,
not the nodes that represent the Color. The actual rendering
should be left up to the cell factory,
where it will take the Color value and create / update the display as
necessary.getItems(),
setItems(ObservableList)public final void setItems(javafx.collections.ObservableList<T> value)
ObservableList as the items list underlying GridView.
The old items list will be discarded.public final javafx.collections.ObservableList<T> getItems()
public static java.util.List<javafx.css.CssMetaData<? extends javafx.css.Styleable,?>> getClassCssMetaData()
public java.util.List<javafx.css.CssMetaData<? extends javafx.css.Styleable,?>> getControlCssMetaData()
getControlCssMetaData in class javafx.scene.control.Controlprotected final java.lang.String getUserAgentStylesheet(java.lang.Class<?> clazz,
java.lang.String fileName)
clazz - the class used for the resource lookupfileName - the name of the user agent stylesheet