Класс CheckBoxTableCell<S, T>
- Type Parameters:
-
S- тип элемента, содержащегося в TableView -
T- тип элементов, содержащихся в ячейке
- All Implemented Interfaces:
-
Styleable,EventTarget,Skinnable
public class CheckBoxTableCell<S,T> extends TableCell<S,T>
TableCell, которая отрисовывает узел CheckBox внутри ячейки, необязательно с меткой, указывающей, что представляет собой флажок. По умолчанию CheckBoxTableCell отображается с центрированным CheckBox в TableColumn. Если требуется метка, необходимо предоставить экземпляр StringConverter, отличный от null, в конструктор CheckBoxTableCell(Callback, StringConverter).
Для создания экземпляра этого класса необходимо предоставить Callback, который, получив объект типа T, вернет ObservableProperty<Boolean>, представляющий собой значение, указывающее, выбран ли данный элемент или нет. Этот ObservableValue будет привязан двунаправленно (это означает, что CheckBox в ячейке будет устанавливать/снимать этот параметр на основе взаимодействий пользователя, а CheckBox будет отражать состояние ObservableValue, если оно изменится внешне).
Обратите внимание, что CheckBoxTableCell отображает CheckBox «в режиме реального времени», что означает, что CheckBox всегда интерактивен и может быть непосредственно переключен пользователем. Это означает, что ячейке не нужно входить в состояние editing state (обычно пользователем двойным щелчком по ячейке). Побочным эффектом этого является то, что обычные обратные вызовы редактирования (например, on edit commit) не будут вызываться. Если вы хотите получать уведомления об изменениях, рекомендуется непосредственно наблюдать за булевыми параметрами, которые манипулирует CheckBox.
- Since:
- JavaFX 2.2
Краткое описание свойств
| Тип | Свойство | Описание |
|---|---|---|
final ObjectProperty |
converter |
Свойство StringConverter. |
final ObjectProperty |
selectedStateCallback |
Свойство, представляющее Callback, к которому привязана галочка CheckBox, отображаемая на экране. |
Свойства, объявленные в классе javafx.scene.control.TableCell
tableColumn, tableRow, tableView
Свойства, объявленные в классе javafx.scene.control.IndexedCell
index
Свойства, объявленные в классе javafx.scene.control.Labeled
alignment, contentDisplay, ellipsisString, font, graphic, graphicTextGap, labelPadding, lineSpacing, mnemonicParsing, textAlignment, textFill, textOverrun, text, textTruncated, underline, wrapText
Свойства, объявленные в классе 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
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
CheckBoxTableCell() |
Создаёт стандартный CheckBoxTableCell. |
CheckBoxTableCell |
Создаёт стандартный CheckBoxTableCell со своим Callback, чтобы получить ObservableValue для заданного индекса ячейки. |
CheckBoxTableCell |
Создаёт CheckBoxTableCell со своим конвертером строк. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
final ObjectProperty |
converterProperty() |
Свойство StringConverter. |
static <S> Callback |
forTableColumn |
Создаёт фабрику ячеек для использования в фабрике ячеек TableColumn. |
static <S, |
forTableColumn |
Создаёт фабрику ячеек для использования в фабрике ячеек TableColumn. |
static <S, |
forTableColumn |
Создаёт фабрику ячеек для использования в фабрике ячеек TableColumn. |
static <S, |
forTableColumn |
Создаёт фабрику ячеек для использования в фабрике ячеек TableColumn. |
final StringConverter |
getConverter() |
Возвращает StringConverter, используемый в данной ячейке. |
final Callback |
getSelectedStateCallback() |
Возвращает Callback, к которому привязана галочка CheckBox, отображаемая на экране. |
final ObjectProperty |
selectedStateCallbackProperty() |
Свойство, представляющее Callback, к которому привязана галочка CheckBox, отображаемая на экране. |
final void |
setConverter |
Устанавливает StringConverter для использования в данной ячейке. |
final void |
setSelectedStateCallback |
Устанавливает Callback, к которому привязана галочка CheckBox, отображаемая на экране. |
void |
updateItem |
Метод updateItem не должен вызываться разработчиками, но это лучший метод для переопределения разработчиками, чтобы позволить им настроить визуальный вид ячейки. |
Методы, объявленные в классе javafx.scene.control.TableCell
getTableColumn, getTableRow, getTableView, tableColumnProperty, tableRowProperty, tableViewProperty, updateTableColumn, updateTableRow, updateTableView
Методы, объявленные в классе javafx.scene.control.IndexedCell
getIndex, indexProperty, updateIndex
Методы, объявленные в классе javafx.scene.control.Cell
cancelEdit, commitEdit, editableProperty, editingProperty, emptyProperty, getInitialFocusTraversable, getItem, isEditable, isEditing, isEmpty, isItemChanged, isSelected, itemProperty, selectedProperty, setEditable, setItem, startEdit, updateSelected
Методы, объявленные в классе 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, isTextTruncated, isUnderline, isWrapText, labelPaddingProperty, lineSpacingProperty, mnemonicParsingProperty, setAlignment, setContentDisplay, setEllipsisString, setFont, setGraphic, setGraphicTextGap, setLineSpacing, setMnemonicParsing, setText, setTextAlignment, setTextFill, setTextOverrun, setUnderline, setWrapText, textAlignmentProperty, textFillProperty, textOverrunProperty, textProperty, textTruncatedProperty, underlineProperty, wrapTextProperty
Методы, объявленные в классе javafx.scene.control.Control
computeMaxHeight, computeMaxWidth, computeMinHeight, computeMinWidth, contextMenuProperty, createDefaultSkin, getContextMenu, getCssMetaData, 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, 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
Подробности свойства
converter
public final ObjectProperty<StringConverter<T>> converterProperty
StringConverter.- См. также:
selectedStateCallback
public final ObjectProperty<Callback<Integer,ObservableValue<Boolean>>> selectedStateCallbackProperty
Callback, привязанное к элементу CheckBox на экране.- См. также:
Подробности конструкторов
CheckBoxTableCell
public CheckBoxTableCell()
CheckBoxTableCell
public CheckBoxTableCell(Callback<Integer,ObservableValue<Boolean>> getSelectedProperty)
Callback для извлечения ObservableValue для данного индекса ячейки.- Параметры:
-
getSelectedProperty-Callback, возвращающийObservableValueдля данного индекса из TableColumn.
CheckBoxTableCell
public CheckBoxTableCell(Callback<Integer,ObservableValue<Boolean>> getSelectedProperty, StringConverter<T> converter)
- Параметры:
-
getSelectedProperty-Callback, возвращающийObservableValueдля данного индекса из TableColumn. -
converter- StringConverter, который, приняв объект типа T, вернёт строку, которая может быть использована для визуального представления объекта.
Подробности методов
forTableColumn
public static <S> Callback<TableColumn<S,Boolean>,TableCell<S,Boolean>> forTableColumn(TableColumn<S,Boolean> column)
TableColumn. Данный метод требует, чтобы TableColumn был типа Boolean. При использовании в TableColumn, CheckBoxCell отображается с элементом CheckBox, центрированным в столбце.
ObservableValue<Boolean> содержащиеся в каждой ячейке столбца будут связаны двунаправленно. Это означает, что CheckBox в ячейке установит/сбросит данное свойство в зависимости от взаимодействия пользователя, и CheckBox отобразит состояние ObservableValue<Boolean>, если оно изменится внешним образом).
forTableColumn
public static <S, T> Callback<TableColumn<S,T>,TableCell<S,T>> forTableColumn(Callback<Integer,ObservableValue<Boolean>> getSelectedProperty)
TableColumn. Данный метод требует, чтобы TableColumn был типа ObservableValue<Boolean>. При использовании в TableColumn, CheckBoxCell отображается с элементом CheckBox, центрированным в столбце.
- Тип параметров:
-
S- Тип дженерик-типа TableView -
T- Тип элементов, содержащихся в экземпляреTableColumn. - Параметры:
-
getSelectedProperty- Callback, который, приняв объект типаTableColumn<S,T>, вернётObservableValue<Boolean>, представляющее, выбран ли данный элемент. ДанноеObservableValue<Boolean>будет связано двунаправленно (что означает, что CheckBox в ячейке установит/сбросит данное свойство в зависимости от взаимодействия пользователя, и CheckBox отобразит состояниеObservableValue<Boolean>, если оно изменится внешним образом). - Возвращает:
Callback, который вернётTableCell, способный работать с типом элемента, содержащегося в TableColumn.
forTableColumn
public static <S, T> Callback<TableColumn<S,T>,TableCell<S,T>> forTableColumn(Callback<Integer,ObservableValue<Boolean>> getSelectedProperty, boolean showLabel)
TableColumn. Данный метод требует, чтобы TableColumn был типа ObservableValue<Boolean>. При использовании в TableColumn, CheckBoxCell отображается с элементом CheckBox, центрированным в столбце.
- Тип параметров:
-
S- Тип дженерик-типа TableView -
T- Тип элементов, содержащихся в экземпляреTableColumn. - Параметры:
-
getSelectedProperty- Callback, который, приняв объект типаTableColumn<S,T>, вернётObservableValue<Boolean>, представляющее, выбран ли данный элемент. ДанноеObservableValue<Boolean>будет связано двунаправленно (что означает, что CheckBox в ячейке установит/сбросит данное свойство в зависимости от взаимодействия пользователя, и CheckBox отобразит состояниеObservableValue<Boolean>, если оно изменится внешним образом). -
showLabel- В некоторых случаях может потребоваться отобразить метку в TableCell рядом сCheckBox. По умолчанию метка не отображается, но установив это в true, для элемента в ячейке будет вызван метод toString(). Если такого поведения не требуется, рассмотрите использованиеforTableColumn(javafx.util.Callback, javafx.util.StringConverter), которое позволяет предоставить callback, определяющий метку для элемента строки. - Возвращает:
Callback, который вернётTableCell, способный работать с типом элемента, содержащегося в TableColumn.
forTableColumn
public static <S, T> Callback<TableColumn<S,T>,TableCell<S,T>> forTableColumn(Callback<Integer,ObservableValue<Boolean>> getSelectedProperty, StringConverter<T> converter)
TableColumn. Данный метод требует, чтобы TableColumn был типа ObservableValue<Boolean>. При использовании в TableColumn, CheckBoxCell отображается с элементом CheckBox, центрированным в столбце.
- Тип параметров:
-
S- Тип дженерик-типа TableView -
T- Тип элементов, содержащихся в экземпляреTableColumn. - Параметры:
-
getSelectedProperty- Callback, который, приняв объект типаTableColumn<S,T>, вернётObservableValue<Boolean>, представляющее, выбран ли данный элемент. ДанноеObservableValue<Boolean>будет связано двунаправленно (что означает, что CheckBox в ячейке установит/сбросит данное свойство в зависимости от взаимодействия пользователя, и CheckBox отобразит состояниеObservableValue<Boolean>, если оно изменится внешним образом). -
converter- StringConverter, который, приняв объект типа T, вернёт строку, которая может быть использована для визуального представления объекта. По умолчанию вforTableColumn(Callback, boolean)(когда showLabel равен true) используется просто вызов .toString() для всех не-null элементов (и возвращается пустая строка в случаях, когда переданный элемент равен null). - Возвращает:
Callback, который вернётTableCell, способный работать с типом элемента, содержащегося в TableColumn.
converterProperty
public final ObjectProperty<StringConverter<T>> converterProperty()
StringConverter.- Возвращает:
- свойство
StringConverter - См. также:
setConverter
public final void setConverter(StringConverter<T> value)
StringConverter, который будет использоваться в этой ячейке.- Parameters:
-
value-StringConverter, который будет использоваться в этой ячейке
getConverter
public final StringConverter<T> getConverter()
StringConverter, используемый в этой ячейке.- Returns:
StringConverter, используемый в этой ячейке
selectedStateCallbackProperty
setSelectedStateCallback
getSelectedStateCallback
updateItem
public void updateItem(T item, boolean empty)
ListView, вызвать этот метод). Цель метода updateItem заключается в том, чтобы разработчики, при указании пользовательских фабрик ячеек (например, ListView cell factory), могли переопределить метод updateItem для полной настройки ячейки. Очень важно, чтобы подклассы Cell корректно переопределяли метод 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). Если этого не сделать, свойства item и empty не будут правильно установлены, и вы, вероятно, столкнётесь с графическими проблемами.
- Мы проверяем условие
emptyи, если оно истинно, устанавливаем свойства text и graphic в null. Если мы этого не сделаем, пользователи практически гарантированно увидят графические артефакты в ячейках неожиданным образом.
- Overrides:
-
updateItemв классеCell<T> - Parameters:
-
item- Новое значение для ячейки. -
empty- Флаг, указывающий, представляет ли ячейка данные из списка. Если false, она не содержит данных, а используется для отображения пустой строки.
© 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.