- java.lang.Object
-
- javafx.scene.Node
-
- javafx.scene.Parent
-
- javafx.scene.layout.Region
-
- javafx.scene.control.Control
-
- javafx.scene.control.Labeled
-
- javafx.scene.control.Cell<T>
-
- javafx.scene.control.IndexedCell<T>
-
- javafx.scene.control.ListCell<T>
-
- javafx.scene.control.cell.ChoiceBoxListCell<T>
-
- 参数类型
-
T
- ListView中包含的元素的类型。
- All Implemented Interfaces:
-
Styleable
,EventTarget
,Skinnable
public class ChoiceBoxListCell<T> extends ListCell<T>
一个包含ListCell
实现的类,在该单元格内绘制一个ChoiceBox
节点。默认情况下, ChoiceBoxListCell在不被编辑时被渲染为
Label
,而在编辑模式时,作为ChoiceBox呈现。 默认情况下,ChoiceBox将拉伸以填充整个列表单元格。要创建一个ChoiceBoxListCell,有必要提供零个或多个项目,当
ChoiceBox
菜单显示时,这些项目将显示给用户。 这些项目必须与ListView项目序列具有相同的类型,以便在选择时,它们将替换items
列表中的现有值。- 从以下版本开始:
- JavaFX 2.2
-
-
Property Summary
Properties Type Property 描述 ObjectProperty<StringConverter<T>>
converter
-
Properties inherited from class javafx.scene.control.Control
contextMenu, skin, tooltip
-
Properties inherited from class javafx.scene.control.IndexedCell
index
-
Properties inherited from class javafx.scene.control.Labeled
alignment, contentDisplay, ellipsisString, font, graphic, graphicTextGap, labelPadding, lineSpacing, mnemonicParsing, textAlignment, textFill, textOverrun, text, underline, wrapText
-
Properties inherited from class javafx.scene.Node
accessibleHelp, accessibleRoleDescription, accessibleRole, accessibleText, blendMode, boundsInLocal, boundsInParent, cacheHint, cache, clip, cursor, depthTest, disabled, disable, effectiveNodeOrientation, effect, eventDispatcher, focused, focusTraversable, hover, id, inputMethodRequests, layoutBounds, layoutX, layoutY, localToParentTransform, localToSceneTransform, managed, mouseTransparent, nodeOrientation, onContextMenuRequested, onDragDetected, onDragDone, onDragDropped, onDragEntered, onDragExited, onDragOver, onInputMethodTextChanged, onKeyPressed, onKeyReleased, onKeyTyped, onMouseClicked, onMouseDragEntered, onMouseDragExited, onMouseDragged, onMouseDragOver, onMouseDragReleased, onMouseEntered, onMouseExited, onMouseMoved, onMousePressed, onMouseReleased, onRotate, onRotationFinished, onRotationStarted, onScrollFinished, onScroll, onScrollStarted, onSwipeDown, onSwipeLeft, onSwipeRight, onSwipeUp, onTouchMoved, onTouchPressed, onTouchReleased, onTouchStationary, onZoomFinished, onZoom, onZoomStarted, opacity, parent, pickOnBounds, pressed, rotate, rotationAxis, scaleX, scaleY, scaleZ, scene, style, translateX, translateY, translateZ, viewOrder, visible
-
Properties inherited from class javafx.scene.Parent
needsLayout
-
Properties inherited from class javafx.scene.layout.Region
background, border, cacheShape, centerShape, height, insets, maxHeight, maxWidth, minHeight, minWidth, opaqueInsets, padding, prefHeight, prefWidth, scaleShape, shape, snapToPixel, width
-
-
Field Summary
-
Fields inherited from class javafx.scene.Node
BASELINE_OFFSET_SAME_AS_HEIGHT
-
Fields inherited from class javafx.scene.layout.Region
USE_COMPUTED_SIZE, USE_PREF_SIZE
-
-
构造方法摘要
构造方法 Constructor 描述 ChoiceBoxListCell()
创建一个带有空项目列表的默认ChoiceBoxListCell。ChoiceBoxListCell(ObservableList<T> items)
创建默认的ChoiceBoxListCell
实例,给定的项目用于在显示ChoiceBox
时填充ChoiceBox
。ChoiceBoxListCell(StringConverter<T> converter, ObservableList<T> items)
创建一个ChoiceBoxListCell
实例,其中给定的项目用于在显示ChoiceBox
时填充ChoiceBox
,而StringConverter
用于将项目转换为用户可读的形式。ChoiceBoxListCell(StringConverter<T> converter, T... items)
创建一个ChoiceBoxListCell
实例,给定的项目用于在显示ChoiceBox
时显示ChoiceBox
,而StringConverter
用于将项目转换为用户可读的形式。ChoiceBoxListCell(T... items)
创建默认的ChoiceBoxListCell
实例,给定的项目用于在显示ChoiceBox
时填充ChoiceBox
。
-
方法摘要
所有方法 静态方法 接口方法 具体的方法 Modifier and Type 方法 描述 void
cancelEdit()
调用此功能从编辑状态转换为非编辑状态,而不保存任何用户输入。ObjectProperty<StringConverter<T>>
converterProperty()
static <T> Callback<ListView<T>,ListCell<T>>
forListView(ObservableList<T> items)
创建一个ChoiceBox单元格工厂用于ListView
控件。static <T> Callback<ListView<T>,ListCell<T>>
forListView(StringConverter<T> converter, ObservableList<T> items)
创建一个ChoiceBox单元格工厂用于ListView
控件。static <T> Callback<ListView<T>,ListCell<T>>
forListView(StringConverter<T> converter, T... items)
创建一个ChoiceBox单元格工厂,用于ListView
控件。static <T> Callback<ListView<T>,ListCell<T>>
forListView(T... items)
创建一个ChoiceBox单元格工厂,用于ListView
控件。StringConverter<T>
getConverter()
返回此单元格中使用的StringConverter
。ObservableList<T>
getItems()
返回要显示在ChoiceBox中的项目。void
setConverter(StringConverter<T> value)
设置要在此单元格中使用的StringConverter
。void
startEdit()
调用此功能从非编辑状态转换到编辑状态,如果单元格是可编辑的。void
updateItem(T item, boolean empty)
updateItem方法不应该被开发人员调用,但它是开发人员覆盖的最佳方式,以允许它们自定义单元格的视觉效果。-
Methods inherited from class javafx.scene.control.Cell
editableProperty, editingProperty, emptyProperty, getInitialFocusTraversable, getItem, isEditable, isEditing, isEmpty, isItemChanged, isSelected, itemProperty, layoutChildren, selectedProperty, setEditable, setItem, updateSelected
-
Methods inherited from class javafx.scene.control.Control
computeMaxHeight, computeMaxWidth, computeMinHeight, computeMinWidth, computePrefHeight, computePrefWidth, contextMenuProperty, getBaselineOffset, getContextMenu, getCssMetaData, getSkin, getTooltip, isResizable, setContextMenu, setSkin, setTooltip, skinProperty, tooltipProperty
-
Methods inherited from class javafx.scene.control.IndexedCell
getIndex, indexProperty, updateIndex
-
Methods inherited from class javafx.scene.control.Labeled
alignmentProperty, contentDisplayProperty, ellipsisStringProperty, fontProperty, getAlignment, getClassCssMetaData, getContentBias, getContentDisplay, getControlCssMetaData, getEllipsisString, getFont, getGraphic, getGraphicTextGap, getInitialAlignment, getLabelPadding, getLineSpacing, getText, getTextAlignment, getTextFill, getTextOverrun, graphicProperty, graphicTextGapProperty, isMnemonicParsing, isUnderline, isWrapText, labelPaddingProperty, lineSpacingProperty, mnemonicParsingProperty, setAlignment, setContentDisplay, setEllipsisString, setFont, setGraphic, setGraphicTextGap, setLineSpacing, setMnemonicParsing, setText, setTextAlignment, setTextFill, setTextOverrun, setUnderline, setWrapText, textAlignmentProperty, textFillProperty, textOverrunProperty, textProperty, toString, underlineProperty, wrapTextProperty
-
Methods inherited from class javafx.scene.control.ListCell
commitEdit, createDefaultSkin, executeAccessibleAction, getListView, listViewProperty, queryAccessibleAttribute, updateListView
-
Methods inherited from class 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, fireEvent, focusedProperty, focusTraversableProperty, getAccessibleHelp, getAccessibleRole, getAccessibleRoleDescription, getAccessibleText, getBlendMode, getBoundsInLocal, getBoundsInParent, getCacheHint, getClip, 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, 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, setViewOrder, setVisible, snapshot, snapshot, startDragAndDrop, startFullDrag, styleProperty, toBack, toFront, translateXProperty, translateYProperty, translateZProperty, usesMirroring, viewOrderProperty, visibleProperty
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from class javafx.scene.Parent
getChildren, getChildrenUnmodifiable, getManagedChildren, getStylesheets, isNeedsLayout, layout, lookup, needsLayoutProperty, requestLayout, requestParentLayout, setNeedsLayout, updateBounds
-
Methods inherited from class javafx.scene.layout.Region
backgroundProperty, borderProperty, cacheShapeProperty, centerShapeProperty, 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
-
Methods inherited from interface javafx.css.Styleable
getStyleableNode
-
-
-
-
Property Detail
-
converter
public final ObjectProperty<StringConverter<T>> converterProperty
- 结果
-
StringConverter
属性
-
-
构造方法详细信息
-
ChoiceBoxListCell
public ChoiceBoxListCell()
创建一个带有空项目列表的默认ChoiceBoxListCell。
-
ChoiceBoxListCell
@SafeVarargs public ChoiceBoxListCell(T... items)
创建默认的ChoiceBoxListCell
实例,给定的项目用于在显示ChoiceBox
时填充ChoiceBox
。- 参数
-
items
- 由用户选择时在ChoiceBox弹出菜单中显示的项目。
-
ChoiceBoxListCell
@SafeVarargs public ChoiceBoxListCell(StringConverter<T> converter, T... items)
创建一个ChoiceBoxListCell
实例,给定的项目用于在显示ChoiceBox
时填充ChoiceBox
,而StringConverter
用于将项目转换为用户可读的形式。- 参数
-
converter
- AStringConverter
可以将T型的项目转换为用户可读的字符串,以便可以在ChoiceBox弹出菜单中显示。 -
items
- 由用户选择时在ChoiceBox弹出菜单中显示的项目。
-
ChoiceBoxListCell
public ChoiceBoxListCell(ObservableList<T> items)
创建默认的ChoiceBoxListCell
实例,给定的项目用于在显示ChoiceBox
时填充ChoiceBox
。- 参数
-
items
- 由用户选择时在ChoiceBox弹出菜单中显示的项目。
-
ChoiceBoxListCell
public ChoiceBoxListCell(StringConverter<T> converter, ObservableList<T> items)
创建一个ChoiceBoxListCell
实例,其中给定的项目用于填充ChoiceBox
,而StringConverter
用于将项目转换为用户可读的形式。- 参数
-
converter
- AStringConverter
可以将T类型的项目转换成用户可读的字符串,以便可以在ChoiceBox弹出菜单中显示。 -
items
- 由用户选择时在ChoiceBox弹出菜单中显示的项目。
-
-
方法详细信息
-
forListView
@SafeVarargs public static <T> Callback<ListView<T>,ListCell<T>> forListView(T... items)
创建一个ChoiceBox单元格工厂,用于ListView
控件。 默认情况下, ChoiceBoxCell在不被编辑时被渲染为Label
,而在编辑模式下,作为ChoiceBox呈现。 默认情况下,ChoiceBox将拉伸以填充整个列表单元格。
-
forListView
@SafeVarargs public static <T> Callback<ListView<T>,ListCell<T>> forListView(StringConverter<T> converter, T... items)
创建一个ChoiceBox单元格工厂,用于ListView
控件。 默认情况下, ChoiceBoxCell在不被编辑时呈现为Label
,在编辑模式时,作为ChoiceBox呈现。 默认情况下,ChoiceBox将拉伸以填充整个列表单元格。- 参数类型
-
T
- ListView中包含的元素的类型。 - 参数
-
converter
- AStringConverter
将给定项(类型T)转换为字符串以显示给用户。 -
items
- 当显示ChoiceBox
菜单时将显示给用户的零个或多个项目。 这些项目必须与ListView项目列表的类型相同,以便在选择时,它们将替换items
列表中的现有值。 - 结果
-
A
Callback
将返回能够处理ListView中包含的元素类型的ListCell。
-
forListView
public static <T> Callback<ListView<T>,ListCell<T>> forListView(ObservableList<T> items)
创建一个ChoiceBox单元格工厂用于ListView
控件。 默认情况下, ChoiceBoxCell在不被编辑时呈现为Label
,而在编辑模式下,作为ChoiceBox呈现。 默认情况下,ChoiceBox将拉伸以填充整个列表单元格。- 参数类型
-
T
- ListView中包含的元素的类型。 - 参数
-
items
- 一个ObservableList
包含零个或多个项目,当ChoiceBox
菜单显示时将显示给用户。 这些项目必须与ListView项目序列具有相同的类型,以便在选择时,它们将替换items
列表中的现有值。 - 结果
-
A
Callback
将返回能够处理ListView中包含的元素类型的ListCell。
-
forListView
public static <T> Callback<ListView<T>,ListCell<T>> forListView(StringConverter<T> converter, ObservableList<T> items)
创建一个ChoiceBox单元格工厂用于ListView
控件。 默认情况下, ChoiceBoxCell在不被编辑时被渲染为Label
,在编辑模式时作为ChoiceBox呈现。 默认情况下,ChoiceBox将拉伸以填充整个列表单元格。- 参数类型
-
T
- ListView中包含的元素的类型。 - 参数
-
converter
- AStringConverter
将给定项目(类型T)转换为用于显示给用户的字符串。 -
items
-一个ObservableList
包含零个或多个项目将被显示给用户时,ChoiceBox
显示菜单时。 这些项目必须与ListView项目序列具有相同的类型,以便在选择时,它们将替换items
列表中的现有值。 - 结果
-
A
Callback
将返回能够处理ListView中包含的元素类型的ListCell。
-
converterProperty
public final ObjectProperty<StringConverter<T>> converterProperty()
- 结果
-
StringConverter
属性
-
setConverter
public final void setConverter(StringConverter<T> value)
设置要在此单元格中使用的StringConverter
。- 参数
-
value
- 要在此单元格中使用的StringConverter
-
getConverter
public final StringConverter<T> getConverter()
返回此单元格中使用的StringConverter
。- 结果
-
在这个单元格中使用的
StringConverter
-
getItems
public ObservableList<T> getItems()
返回要显示在ChoiceBox中的项目。- 结果
- 要显示在ChoiceBox中的项目
-
startEdit
public void startEdit()
调用此功能从非编辑状态转换到编辑状态,如果单元格是可编辑的。 如果这个单元格已经处于编辑状态,它将保留在它中。
-
cancelEdit
public void cancelEdit()
调用此功能从编辑状态转换为非编辑状态,而不保存任何用户输入。- 重写:
-
cancelEdit
在ListCell<T>
-
updateItem
public void updateItem(T item, boolean empty)
updateItem方法不应该被开发人员调用,但它是开发人员覆盖的最佳方式,以允许它们自定义单元格的视觉效果。 为了澄清,开发人员不应该在他们的代码中调用这个方法(他们应该留给UI控件,如ListView
控件)来调用这个方法。 但是,使用updateItem方法的目的是使开发人员在指定自定义单元格工厂时(再次像ListViewcell factory
),可以覆盖updateItem方法以允许对单元格进行完全自定义。非常重要的是,Cell的子类会正确覆盖updateItem方法,因为这样做会导致诸如空白单元格或其中出现意外内容的单元格等问题。 以下是如何正确覆盖updateItem方法的示例:
protected void updateItem(T item, boolean empty) { super.updateItem(item, empty); if (empty || item == null) { setText(null); setGraphic(null); } else { setText(item.toString()); } }
注意在这段代码示例中的两个重点:
- 我们称之为super.updateItem(T,boolean)方法。 如果没有这样做,项目和空属性设置不正确,您可能会遇到图形问题。
- 我们测试
empty
条件,如果为true,我们将文本和图形属性设置为null。 如果我们不这样做,几乎可以保证最终用户意外地看到细胞中的图形工件。
- 重写:
-
updateItem
在Cell<T>
- 参数
-
item
- 单元格的新项目。 -
empty
- 该单元格是否表示列表中的数据。 如果它是空的,那么它不表示任何域数据,而是用于呈现“空”行的单元格。
-
-