checkbox 复选框

checkbox 是一个拥有两个状态的组件:选中或者未选中。

XML 元素

checkbox

Java 类

JmixCheckbox

XML 属性

id - alignSelf - ariaLabel - ariaLabelledBy - autofocus - classNames - clickShortcut - colspan - css - dataContainer - enabled - focusShortcut - height - indeterminate - label - maxHeight - maxWidth - minHeight - minWidth - property - readOnly - required - tabIndex - value - visible - width

事件和处理器

AttachEvent - BlurEvent - ClickEvent - ComponentValueChangeEvent - DetachEvent - FocusEvent

XML 内部元素

tooltip

基本用法

checkbox 的基本示例:

<checkbox label="Create new document"
          value="true"/>
check box basics

数据绑定

数据绑定是指将组件与 数据容器 进行关联。可视化组件或相应数据容器中的更改可以触发彼此的更新。有关详细信息,请参阅 使用数据组件

下面的示例生成了一个数据感知的 checkbox。实体属性必须为 Boolean 类型。

<data>
    <instance id="userDc"
              class="com.company.onboarding.entity.User"> (1)
        <fetchPlan extends="_base"/> (2)
        <loader/>
    </instance>
</data>
<layout>
    <checkbox id="checkbox"
              label="Active"
              dataContainer="userDc"
              property="active"/> (3)
</layout>
1 User 实体的 InstanceContainer 容器。
2 容器内实体的内联 fetch plan。
3 将组件与数据容器和属性进行关联。dataContainer 属性使用 userDc 数据容器,property 引用 active 实体属性。

状态

checkbox 有以下几种状态,不同的状态具有不同的外观和功能。

启用

  • 启用:复选框可进行交互并响应用户的输入。用户可以通过点击改变组件的状态。

  • 禁用:复选框禁用,无法与用户交互。通常显示为灰色,表示已禁用。

checkbox enable disable
XML 代码
<checkbox label="The enabled checkbox"
          value="true"
          enabled="true"/>
<checkbox label="The disabled checkbox"
          enabled="false"
          value="true"/>

只读

readOnly 属性控制用户是否可以更改组件的状态。如果设置为 true,则 checkbox 为只读状态,用户无法更改状态。

XML 代码
<checkbox label="The readOnly checkbox"
          value="true"
          readOnly="true"/>
<checkbox label="The editable checkbox"
          readOnly="false"
          value="true"/>

不确定态

indeterminate 属性控制 checkbox 是否处于一个不确定的状态,既非全选中,也非不选中。

在外观上,组件展示为一个单独的不确定态。

根据 HTML5 标准,这个状态只是影响组件的外观,并不会影响组件的值。
checkbox indeterminate
XML 代码
<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 的特殊属性:

名称

描述

默认值

enabled

设置 checkbox 启用或禁用。参阅 启用状态

true

indeterminate

设置 checkbox 为不确定态。参阅 不确定状态

false

readOnly

设置 checkbox 为只读模式。参阅 只读状态

false

required

设置 checkbox 的必填状态。参阅 必填状态

false

事件和处理器

通用事件和处理器 对所有组件都是一样的配置。 下面是 checkbox 的特殊事件和处理器:

在 Jmix Studio 生成处理器桩代码时,可以使用 Jmix UI 组件面板的 Handlers 标签页或者视图类顶部面板的 Generate Handler 添加,也可以通过 CodeGenerate 菜单(Alt+Insert / Cmd+N)生成。

名称

描述

ClickEvent

当用户点击组件是发送 com.vaadin.flow.component.ClickEvent 事件。参阅 点击事件

参考