CheckBox 复选框
基本用法
示例:
<checkBox id="checkBox"
caption="Create new document"/>
勾选或者取消勾选复选框会改变它的值为 Boolean.TRUE
或者 Boolean.FALSE
。这个值可以通过 getValue()
方法获取,也可以通过 setValue()
方法设置。通过 setValue()
设置 null
的话,会把值改成 Boolean.FALSE
然后取消复选框的选择。
数据感知的 CheckBox
如需创建关联至数据的 CheckBox
,可以用 XML 的 dataContainer 和 property 属性。
<data>
<instance id="userDc" class="ui.ex1.entity.User">
<loader/>
</instance>
</data>
<layout>
<checkBox dataContainer="userDc"
property="enabled"
caption="User Property"/>
</layout>
从这个例子可以看出,这个界面包含了一个关联 User
实体的 userDc
,User
实体具有 enabled
属性。CheckBox
的 dataContainer 属性需要指向一个数据容器;property
属性需要指向实体中需要展示到 CheckBox
的字段名字,这个字段必须要是 Boolean
类型。
事件和处理器
如需使用 Jmix Studio 生成处理器的桩代码,需要在界面 XML 描述或者 Jmix UI 层级结构面板选中该组件,然后用 Jmix UI 组件面板的 Handlers 标签页生成。 或者可以使用界面控制器顶部面板的 Generate Handler 按钮。 |
Validator
为组件添加 validator 实例。如果值验证失败,validator
必须抛出 ValidationException
异常。
@Install(to = "checkBoxValid", subject = "validator")
protected void checkBoxValidValidator(Boolean value) {
if (!value)
throw new ValidationException("You must accept the terms of the license");
}
ValueChangeEvent
可以用 ValueChangeListener
方法跟踪 CheckBox
值的变化,示例:
@Autowired
private Notifications notifications;
@Subscribe("checkBox")
protected void onCheckBoxValueChange(HasValue.ValueChangeEvent<Boolean> event) {
if (Boolean.TRUE.equals(event.getValue())) {
notifications.create()
.withCaption("set")
.show();
} else {
notifications.create()
.withCaption("not set")
.show();
}
}
CheckBox XML 属性
可以使用 Studio 界面设计器的 Jmix UI 组件面板查看和编辑组件的属性。 |
align - buffered - caption - captionAsHtml - colspan - contextHelpText - contextHelpTextHtmlEnabled - css - dataContainer - description - descriptionAsHtml - editable - enable - box.expandRatio - height - htmlSanitizerEnabled - icon - id - property - responsive - rowspan - stylename - tabIndex - visible - width