public class ComboBox<T> extends ComboBoxBase<T>
ComboBoxBase
抽象クラスの実装。ComboBoxの一般概念およびAPIの詳細は、ComboBoxBase
クラスのドキュメントを参照してください。
ComboBoxクラスによって、ComboBoxBaseの上に、追加のAPIが導入されます。最も重要なことは、ListView items
プロパティとほぼ同じように機能するitems
プロパティが追加されることです。つまり、ユーザーがComboBoxボタンをクリックすると表示されるアイテム・リストのコンテンツです。
ComboBoxはComboBoxBase
からComboBoxBase.valueProperty()
を公開しますが、ComboBoxとの関連において理解する必要がある、valueプロパティの重要なポイントがいくつかあります。これには次のものがあります。
selection
をクリアしても、valueプロパティがnullになることはなく、前のままです。SelectionModel.selectedItemProperty()
とvalueプロパティの両方がこの値を持つように更新されます。このことは、選択モデルを使用するその他のコントロールと一貫しませんが、ComboBoxのために意図的に行われています。デフォルトでは、ポップアップ・リストが表示されるとき、表示される最大行数は10ですが、このことはvisibleRowCount
プロパティを変更することで変更できます。ComboBoxのアイテムの数がvisibleRowCount
の値よりも少ない場合、ポップアップ・リストが長くなりすぎないように、かわりにアイテムのサイズが使用されます。
ListViewと同様に、使用されるselection model
を変更できますが、これが変更されることはほとんどありません。これは、ComboBoxではSingleSelectionModel
インスタンスが必要とされ、代替の実装はあまり必要とされないためです。それでも、選択モデルを切り替えるユースケースが見つかった場合に備えて、このオプションがあります。
ComboBoxは内部的にListViewを使用してコンテンツをレンダリングするため、ComboBoxクラスにはカスタム・セル・ファクトリを設定できるようにするためのAPIがあります。セル・ファクトリの詳細は、Cell
クラスおよびListCell
クラスを参照してください。セル・ファクトリがComboBoxに設定されている場合、ComboBoxをクリックすると表示されるListViewでのみセルが使用されることに注意することが重要です。また、ComboBoxのボタン領域のレンダリングをカスタマイズする場合は、button cell
のプロパティにカスタムのListCell
インスタンスを設定できます。このことを行う1つの方法は、次のコードを使用することです(setButtonCell
を使用していることに注意してください)。
Callback<ListView<String>, ListCell<String>> cellFactory = ...;
ComboBox comboBox = new ComboBox();
comboBox.setItems(items);
comboBox.setButtonCell(cellFactory.call(null));
comboBox.setCellFactory(cellFactory);
ComboBoxはeditable
にでき、ユーザー入力を許可するデフォルトの手段はTextField
を使用することであるため、開発者がユーザーの文字列を型Tのオブジェクトに変換する方法を指定できるstring converter
プロパティが用意され、それをvalue
プロパティに含めることができるようになっています。デフォルトでは、コンバータは単にユーザーが入力したとおりに文字列入力を返すため、編集可能なComboBoxの型は文字列であることが想定されます。別の型が指定され、ComboBoxが編集可能である場合、カスタムのStringConverter
を指定する必要があります。
Node
インスタンスなど任意の型の要素を含めることができます。ノードをアイテム・リストに含めることはお薦めしません。これは、デフォルトのcell factory
では、単にNodeアイテムをComboBoxのボタン領域などセルに直接挿入するためです。シーングラフではノードが一度に1つの場所にのみ存在できるため、選択されたアイテムはComboBoxリストから削除され、ボタン領域に表示されます。選択を変更すると、前に選択していたアイテムがリストに戻され、新しい選択が削除されます。
Nodeインスタンスをアイテム・リストに挿入するのではなく、関連情報をComboBoxに含め、カスタムcell factory
を指定するアプローチをお薦めします。たとえば、次のコードは使用しません。
ComboBox<Rectangle> cmb = new ComboBox<Rectangle>();
cmb.getItems().addAll(
new Rectangle(10, 10, Color.RED),
new Rectangle(10, 10, Color.GREEN),
new Rectangle(10, 10, Color.BLUE));
次の手順を実行します。
ComboBox<Color> cmb = new ComboBox<Color>();
cmb.getItems().addAll(
Color.RED,
Color.GREEN,
Color.BLUE);
cmb.setCellFactory(new Callback<ListView<Color>, ListCell<Color>>() {
@Override public ListCell<Color> call(ListView<Color> p) {
return new ListCell<Color>() {
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);
}
}
};
}
});
前述のアプローチの方がかなり冗長ですが、シーングラフの制約が発生することなく、必要な機能が提供されます。
ComboBoxBase
、Cell
、ListCell
、StringConverter
Type | プロパティと説明 |
---|---|
ObjectProperty<ListCell<T>> |
buttonCell
ボタン・セルを使用して、ComboBoxのボタン領域に表示される内容をレンダリングします。
|
ObjectProperty<Callback<ListView<T>,ListCell<T>>> |
cellFactory
カスタム・セル・ファクトリにより、ComboBoxのアイテムのレンダリングを完全にカスタマイズできます。
|
ObjectProperty<StringConverter<T>> |
converter
|
ReadOnlyObjectProperty<TextField> |
editor
ComboBoxのエディタ。
|
ObjectProperty<ObservableList<T>> |
items
ComboBoxポップアップ内に表示するアイテムのリスト。
|
ObjectProperty<Node> |
placeholder
表示するコンテンツがComboBoxにない場合は、このノードがユーザーに表示されます。
|
ObjectProperty<SingleSelectionModel<T>> |
selectionModel
ComboBoxの選択モデル。
|
IntegerProperty |
visibleRowCount
ComboBoxポップアップが表示されているときに、ポップアップ内に表示される行の最大数。
|
armed、editable、onAction、onHidden、onHiding、onShowing、onShown、promptText、showing、value
contextMenu、skin、tooltip
background、border、cacheShape、centerShape、height、insets、maxHeight、maxWidth、minHeight、minWidth、opaqueInsets、padding、prefHeight、prefWidth、scaleShape、shape、snapToPixel、width
needsLayout
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、visible
ON_HIDDEN、ON_HIDING、ON_SHOWING、ON_SHOWN
USE_COMPUTED_SIZE、USE_PREF_SIZE
BASELINE_OFFSET_SAME_AS_HEIGHT
コンストラクタと説明 |
---|
ComboBox()
空の
items のリストとデフォルトのselection model でデフォルトのComboBoxインスタンスを作成します。 |
ComboBox(ObservableList<T> items)
指定されたアイテム・リストとデフォルトの
selection model を含むデフォルトのComboBoxインスタンスを作成します。 |
修飾子と型 | メソッドと説明 |
---|---|
ObjectProperty<ListCell<T>> |
buttonCellProperty()
ボタン・セルを使用して、ComboBoxのボタン領域に表示される内容をレンダリングします。
|
ObjectProperty<Callback<ListView<T>,ListCell<T>>> |
cellFactoryProperty()
カスタム・セル・ファクトリにより、ComboBoxのアイテムのレンダリングを完全にカスタマイズできます。
|
ObjectProperty<StringConverter<T>> |
converterProperty()
|
protected Skin<?> |
createDefaultSkin()
このコントロールのデフォルト・スキンの新しいインスタンスを作成します。
|
ReadOnlyObjectProperty<TextField> |
editorProperty()
ComboBoxのエディタ。
|
ListCell<T> |
getButtonCell()
プロパティbuttonCellの値を取得します。
|
Callback<ListView<T>,ListCell<T>> |
getCellFactory()
プロパティcellFactoryの値を取得します。
|
StringConverter<T> |
getConverter()
プロパティconverterの値を取得します。
|
TextField |
getEditor()
プロパティ・エディタの値を取得します。
|
ObservableList<T> |
getItems()
プロパティ・アイテムの値を取得します。
|
Node |
getPlaceholder()
プロパティ・プレースホルダの値を取得します。
|
SingleSelectionModel<T> |
getSelectionModel()
プロパティselectionModelの値を取得します。
|
int |
getVisibleRowCount()
プロパティvisibleRowCountの値を取得します。
|
ObjectProperty<ObservableList<T>> |
itemsProperty()
ComboBoxポップアップ内に表示するアイテムのリスト。
|
ObjectProperty<Node> |
placeholderProperty()
表示するコンテンツがComboBoxにない場合は、このノードがユーザーに表示されます。
|
Object |
queryAccessibleAttribute(AccessibleAttribute attribute, Object... parameters)
*アクセシビリティ処理* *
|
ObjectProperty<SingleSelectionModel<T>> |
selectionModelProperty()
ComboBoxの選択モデル。
|
void |
setButtonCell(ListCell<T> value)
プロパティbuttonCellの値を設定します。
|
void |
setCellFactory(Callback<ListView<T>,ListCell<T>> value)
プロパティcellFactoryの値を設定します。
|
void |
setConverter(StringConverter<T> value)
プロパティconverterの値を設定します。
|
void |
setItems(ObservableList<T> value)
プロパティ・アイテムの値を設定します。
|
void |
setPlaceholder(Node value)
プロパティ・プレースホルダの値を設定します。
|
void |
setSelectionModel(SingleSelectionModel<T> value)
プロパティselectionModelの値を設定します。
|
void |
setVisibleRowCount(int value)
プロパティvisibleRowCountの値を設定します。
|
IntegerProperty |
visibleRowCountProperty()
ComboBoxポップアップが表示されているときに、ポップアップ内に表示される行の最大数。
|
arm、armedProperty、disarm、editableProperty、executeAccessibleAction、getOnAction、getOnHidden、getOnHiding、getOnShowing、getOnShown、getPromptText、getValue、hide、isArmed、isEditable、isShowing、onActionProperty、onHiddenProperty、onHidingProperty、onShowingProperty、onShownProperty、promptTextProperty、setEditable、setOnAction、setOnHidden、setOnHiding、setOnShowing、setOnShown、setPromptText、setValue、show、showingProperty、valueProperty
computeMaxHeight、computeMaxWidth、computeMinHeight、computeMinWidth、computePrefHeight、computePrefWidth、contextMenuProperty、getBaselineOffset、getClassCssMetaData、getContextMenu、getControlCssMetaData、getCssMetaData、getSkin、getTooltip、isResizable、layoutChildren、setContextMenu、setSkin、setTooltip、skinProperty、tooltipProperty
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、snapSize、snapSpace、snapToPixelProperty、widthProperty
getChildren、getChildrenUnmodifiable、getManagedChildren、getStylesheets、isNeedsLayout、layout、lookup、needsLayoutProperty、requestLayout、requestParentLayout、setNeedsLayout、updateBounds
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、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、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、visibleProperty
public ObjectProperty<ObservableList<T>> itemsProperty
public ObjectProperty<StringConverter<T>> converterProperty
public ObjectProperty<Callback<ListView<T>,ListCell<T>>> cellFactoryProperty
Cell
のjavadocを参照してください。public ObjectProperty<ListCell<T>> buttonCellProperty
cell factory
APIによって制御されます。getButtonCell()
、setButtonCell(ListCell)
public final ObjectProperty<SingleSelectionModel<T>> selectionModelProperty
public final IntegerProperty visibleRowCountProperty
public final ReadOnlyObjectProperty<TextField> editorProperty
editable
でない場合、editorはnullです。getEditor()
public final ObjectProperty<Node> placeholderProperty
getPlaceholder()
、setPlaceholder(Node)
public ComboBox()
items
のリストとデフォルトのselection model
でデフォルトのComboBoxインスタンスを作成します。public ComboBox(ObservableList<T> items)
selection model
を含むデフォルトのComboBoxインスタンスを作成します。public final void setItems(ObservableList<T> value)
public final ObservableList<T> getItems()
public ObjectProperty<ObservableList<T>> itemsProperty()
public ObjectProperty<StringConverter<T>> converterProperty()
public final void setConverter(StringConverter<T> value)
public final StringConverter<T> getConverter()
public final void setCellFactory(Callback<ListView<T>,ListCell<T>> value)
Cell
のjavadocを参照してください。public final Callback<ListView<T>,ListCell<T>> getCellFactory()
Cell
のjavadocを参照してください。public ObjectProperty<Callback<ListView<T>,ListCell<T>>> cellFactoryProperty()
Cell
のjavadocを参照してください。public ObjectProperty<ListCell<T>> buttonCellProperty()
cell factory
APIによって制御されます。getButtonCell()
、setButtonCell(ListCell)
public final void setButtonCell(ListCell<T> value)
cell factory
APIによって制御されます。public final ListCell<T> getButtonCell()
cell factory
APIによって制御されます。public final void setSelectionModel(SingleSelectionModel<T> value)
public final SingleSelectionModel<T> getSelectionModel()
public final ObjectProperty<SingleSelectionModel<T>> selectionModelProperty()
public final void setVisibleRowCount(int value)
public final int getVisibleRowCount()
public final IntegerProperty visibleRowCountProperty()
public final TextField getEditor()
editable
でない場合、editorはnullです。public final ReadOnlyObjectProperty<TextField> editorProperty()
editable
でない場合、editorはnullです。getEditor()
public final ObjectProperty<Node> placeholderProperty()
getPlaceholder()
、setPlaceholder(Node)
public final void setPlaceholder(Node value)
public final Node getPlaceholder()
protected Skin<?> createDefaultSkin()
-fx-skin
を介してスキンが提供されていない場合にコントロール用のスキンを作成するために、またはsetSkin(...)
を使用してサブクラスで明示的に設定するために呼び出されます。createDefaultSkin
、クラス: Control
public Object queryAccessibleAttribute(AccessibleAttribute attribute, Object... parameters)
queryAccessibleAttribute
in class ComboBoxBase<T>
attribute
- リクエストされた属性parameters
- オプションのパラメータ・リストAccessibleAttribute
Copyright (c) 2008, 2015, Oracle and/or its affiliates. All rights reserved.