我有一个 vaadin 的 ListSelect
组件,我想在按下键盘上的 DEL
键时删除其中的项目。
我找到了 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。