我有,我想,如果使用的关键DEL
删除项vaadin ListSelect
组件。如何添加Keylistener到Vaadin的ListSelect?
所有我发现是在ShortcutListener
但如果我添加下面的听众中,DEL
关键并不在我的应用程序的其余部分工作(如删除在TextField
文本):
listSelect.addShortcutListener(new ShortcutListener("", KeyCode.DELETE, null) {
private static final long serialVersionUID = 4703134138899283799L;
@Override
public void handleAction(Object sender, Object target) {
// handle delete
}
});
我应该如何实现DEL
键的听众?
编辑:试图用包装Panel
在意见提出,但它仍然无法正常工作。在这里我当前的代码:
listSelect = new ListSelect(null);
listSelect.setWidth(100, Unit.PERCENTAGE);
listSelect.setHeight(82, Unit.PIXELS);
listSelect.setMultiSelect(true);
listSelect.setNullSelectionAllowed(false);
listSelect.setDescription("Löschen mit der DEL Taste");
listSelect.addShortcutListener(new ShortcutListener("", KeyCode.DELETE, null) {
private static final long serialVersionUID = 4703134138899283799L;
@Override
public void handleAction(Object sender, Object target) {
// handle delete
}
});
Panel wrapperPanel = new Panel(listSelect);
form.addComponent(wrapperPanel);
的form
是GridLayout
的form
父是Panel
。该面板是TabSheet
的一部分。我正在使用Vaadin版本7.7.1。
所以做这项工作(除了这个事实,它毁了其他的应用程序)?如果是这样的话,那么你可以尝试在该输入周围添加一个(无边框)面板作为屏障。 – cfrick
@cfrick这是一个非常好的主意,但起初看来,面板的解决方法似乎需要在面板上设置快捷方式的侦听器而不是列表选择,否则它仍然像OP描述的那样工作。看到我的回答在 – Morfic