我有,我想,如果使用的關鍵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