button

用户点击 button - 按钮 执行操作。

  • XML 元素:button

  • Java 类:JmixButton

基本用法

按钮上可以有标题、图标或者两者皆有:

button 1

下面是定义带有标题、图标以及从 消息包 中获取文本显示到按钮提示的示例:

<button id="toolsButton"
        text="Tools"
        title="msg://toolsButton.title"
        icon="TOOLS"/>

在视图类中订阅 ClickEvent 事件可以处理按钮点击:

@Subscribe("toolsButton")
public void onToolsButtonClick(ClickEvent<Button> event) {
    // ...
}

操作

另一个处理按钮点击的方法是将按钮与一个 Action 进行关联:

<actions>
    <action id="helloAction" text="Say Hello"/>
</actions>
<layout>
    <button id="helloButton" action="helloAction"/>

可以将按钮与视图中定义的操作或者任何一个实现了 HasActions 接口组件(例如,DataGrid)的操作进行关联。下面的示例中,按钮与 usersTable 组件的 create 操作关联:

<button id="createButton" action="usersTable.create"/>

<dataGrid id="usersTable" dataContainer="users">
    <actions>
        <action id="create" type="create"/>
    </actions>

属性

disableOnClick

如果 disableOnClick 属性设置成 true,这个按钮在点击之后就自动禁用,主要用来防止(意外的)多次点击。之后可以通过调用 setEnabled(true) 把按钮恢复成可点击状态。

事件

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

ClickEvent

com.vaadin.flow.component.ClickEvent 当用户点击按钮时发送。

@Subscribe("helloButton") (1)
public void onHelloButtonClick(ClickEvent<Button> event) {
    Button button = event.getSource(); (2)
    // ...
}
1 @Subscribe 注解将处理方法与组件通过组件 id 进行关联。
2 如果需要,可以从 event 对象中获取点击的按钮。

如需通过编程的方式注册事件处理器,可以使用组件的 addClickListener() 方法。

参考资料

参阅 Vaadin 文档 了解更多详情。