checkbox 复选框
checkbox 是一个拥有两个状态的组件:选中或者未选中。
XML 元素 |
|
|---|---|
Java 类 |
|
数据感知的 checkbox
下面的示例生成了一个数据感知的 checkbox。实体属性必须为 Boolean 类型。
<data>
<instance id="customerDc"
class="io.jmix.uisamples.entity.Customer"
fetchPlan="_local"/>
</data>
<layout>
<checkbox id="activeCheckbox"
label="Checkbox connected to a container"
dataContainer="customerDc"
property="active"/>
<hbox>
<span text="Value in the container:"/>
<span id="spanValue"/>
</hbox>
</layout>
customerDc 实例容器加载了一个 Customer 实体及其本地属性。dataContainer 属性将组件与数据容器绑定,property 属性表示用组件处理布尔类型的 active 实体属性。
状态
checkbox 有以下几种状态,不同的状态具有不同的外观和功能。
启用
-
启用:复选框可进行交互并响应用户的输入。用户可以通过点击改变组件的状态。
-
禁用:复选框禁用,无法与用户交互。通常显示为灰色,表示已禁用。
<checkbox label="The enabled checkbox"
value="true"
enabled="true"/>
<checkbox label="The disabled checkbox"
enabled="false"
value="true"/>
只读
readOnly 属性控制用户是否可以更改组件的状态。如果设置为 true,则 checkbox 为只读状态,用户无法更改状态。
<checkbox label="The readOnly checkbox"
value="true"
readOnly="true"/>
<checkbox label="The editable checkbox"
readOnly="false"
value="true"/>
不确定态
indeterminate 属性控制 checkbox 是否处于一个不确定的状态,既非全选中,也非不选中。
在外观上,组件展示为一个单独的不确定态。
| 根据 HTML5 标准,这个状态只是影响组件的外观,并不会影响组件的值。 |
<checkbox label="With indeterminate state = true"
value="false"
indeterminate="true"/>
<checkbox label="With indeterminate state = false"
indeterminate="false"
value="false"/>
必填
复选框也可以通过 required 配置或绑定一个带 @NotNull 验证的必需属性设置为必填项。
与输入字段类似,只有当复选框非空(即勾选)时才能通过 @NotNull 验证。该行为的默认值可以通过 jmix.ui.component.checkbox-required-state-initialization-enabled 属性修改,以支持非选择状态为 false。
|
点击事件
com.vaadin.flow.component.ClickEvent 当用户点击组件时发送。处理方法需要指定下列三种类型的点击之一。
-
click - 点击时触发
-
singleClick - 在一定的延时后触发,以确保不是双击。
-
doubleClick - 当双击组件时触发。
示例:
当用户点击 checkbox 时,发送 com.vaadin.flow.component.ClickEvent 事件。
@Autowired
private Notifications notifications;
@Subscribe(id = "checkbox", subject = "clickListener")
public void onCheckboxClick(final ClickEvent<JmixCheckbox> event) {
if (event.getSource().getValue()){
notifications.show("Set");
} else {
notifications.show("Not set");
}
}
XML 属性
下面是 checkbox 的特殊属性:
| 名称 | 描述 | 默认值 |
|---|---|---|
设置 |
|
|
设置 |
|
|
设置 |
|
|
设置 |
|
|
设置组件的值。 |
— |
下面是 checkbox 支持的其他通用属性:
id - alignSelf - ariaLabel - ariaLabelledBy - autofocus - classNames - clickShortcut - colspan - css - dataContainer - focusShortcut - height - label - maxHeight - maxWidth - minHeight - minWidth - property - tabIndex - visible - width
事件和处理器
下面是 checkbox 的特殊事件和处理器:
| 名称 | 描述 |
|---|---|
当用户点击组件是发送 |
下面是 checkbox 支持的其他通用事件:
XML 内部元素
一个 checkbox 可以包含 tooltip 作为内部元素。