如何制作 vaadin table 单元格点击监听器
How to make vaadin table cell click listener
我有 vaadin table,里面有一些行和列。如何使 1 个特定列的单元格可点击?
目标:代替鼠标悬停,我想在单击该 1 个特定列的单元格时显示工具提示。该单元格包含作为标签的文本。
我没有发布任何代码,因为我只有 table(这对任何人都没有帮助)。
目前无法将 clickListener
附加到 Grid
中的特定单元格,如 discussion 中所述。他们说单元格只是数据的表示,而不是元素,所以不能点击。
相反,您可以在单元格内添加一个组件,例如插件 LabelButton
(github),或者简单地添加一个 Button
并将其设置为无边框。
PD:作为奖励,我正在添加代码以在 Grid
:[=49= 中添加 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);
这种方法的替代方法是使用像 GeneratedPropertyContainer
这样的 属性 生成器,并使用像 ComponentRenderer
这样的插件(here) to render buttons. An example here 在我的其他答案中..
Vaadin 8.1
Vaadin 8.1 现在有一个用于 Grid
的内置 ComponentRenderer
。请参阅 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
我有 vaadin table,里面有一些行和列。如何使 1 个特定列的单元格可点击?
目标:代替鼠标悬停,我想在单击该 1 个特定列的单元格时显示工具提示。该单元格包含作为标签的文本。
我没有发布任何代码,因为我只有 table(这对任何人都没有帮助)。
目前无法将 clickListener
附加到 Grid
中的特定单元格,如 discussion 中所述。他们说单元格只是数据的表示,而不是元素,所以不能点击。
相反,您可以在单元格内添加一个组件,例如插件 LabelButton
(github),或者简单地添加一个 Button
并将其设置为无边框。
PD:作为奖励,我正在添加代码以在 Grid
:[=49= 中添加 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);
这种方法的替代方法是使用像 GeneratedPropertyContainer
这样的 属性 生成器,并使用像 ComponentRenderer
这样的插件(here) to render buttons. An example here 在我的其他答案中..
Vaadin 8.1
Vaadin 8.1 现在有一个用于 Grid
的内置 ComponentRenderer
。请参阅 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