java - 如何制作 vaadin 表格单元格点击监听器

标签 java tooltip vaadin clicklistener

我有 vaadin 表,其中包含一些行和列。如何使 1 个特定列的单元格可单击?

目标:我想在单击该 1 特定列的单元格时显示工具提示,而不是鼠标悬停。该单元格包含文本作为标签。

我不会发布任何代码,因为我只有表格(这对任何人都没有帮助)。

最佳答案

目前不可能将 clickListener 附加到 Grid 中的特定单元格,如本 discussion 中所述。 。他们告诉我们,单元格只是数据的表示,而不是元素,因此无法单击它们。

相反,您可以在单元格内添加一个组件,例如插件 LabelButton ( github ),或者简单地添加一个 Button 并将其设置为无边框。

PD:作为奖励,我添加了在 Grid 中添加 Button 的代码:

Vaadin 7

RendererClickListener clickListener = new RendererClickListener() {
    private static final long serialVersionUID = 1L;

    @Override
    public void click(RendererClickEvent event) {
        //Do your actions
    }
};
ButtonRenderer renderer = new ButtonRenderer(ownerClickListener, "");
grid.getColumn("columnName").setRenderer(renderer);

此方法的替代方法是使用像 GeneratePropertyContainer 这样的属性生成器,并使用像 ComponentRenderer ( here ) 这样的插件来渲染按钮。一个例子here在我的其他答案中..

Vaadin 8.1

Vaadin 8.1 现在有一个内置的 ComponentRenderer,可在 Grid 中使用。请参阅What’s New ,第一项,“网格中的组件”。

grid.addComponentColumn(person -> {
    Button button = new Button("Click me!");
    button.addClickListener(click ->
        Notification.show("Clicked: " + person.toString()));
    return button;
});
// make sure the buttons fit in the cells of the Grid
grid.setBodyRowHeight(40);

Grid文档中所示的示例in Vaadin page

关于java - 如何制作 vaadin 表格单元格点击监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45697291/

相关文章:

java - 具有复杂枚举的优先级队列?

java - 递归地将字符串拆分为固定数量的单词 [Java]

java - Spring Security 过滤器有多个 URL 拦截映射

css - 某些 HTML 元素的 z-index 不良行为

java - RegexpValidator 不会阻止空字符串

java - Hibernate @BatchSize 在 session.flush 之后无法按预期工作

javascript - 用于弹出窗口/工具提示的 jQuery 插件?

jquery - 如何隐藏struts2 jqgrid中的工具提示?

java - 如何在上下文初始化后创建 session bean

spring - Vaadin不同步时不调用getSystemMessages