Ваадин: Как программно выполнить KeyPressEvent на TAB-Button?
Есть ли способ программно выполнить событие нажатия кнопки, то есть для TAB
-Кнопка в Ваадине? Я должен написать тест для ShortCutListener, который слушает ShortCut ShortCutAction.KeyEvent.TAB
,
Я пробовал что-то подобное:
Button button = new Button();
button.addShortcutListener(new ShortcutListener("ShortCut", ShortcutAction.KeyCode.TAB, null) {
private static final long serialVersionUID = 1L;
@Override
public void handleAction(Object sender, Object target) {
System.out.println("Click!");
}
});
button.setClickShortcut(ShortcutAction.KeyCode.TAB, null);
button.click();
1 ответ
Решение
Если вы хотите вызвать событие нажатия при нажатии клавиши табуляции, вы можете сделать следующее:
Button button = new Button();
button.addClickListener(new Button.ClickListener() {
private static final long serialVersionUID = 1L;
@Override
public void buttonClick(final ClickEvent event) {
System.out.println("Click!");
}
});
button.setClickShortcut(ShortcutAction.KeyCode.TAB);
button.click();
Используя Vaadin Button
делать что-то полезное с нажатием клавиши, вероятно, не очень хорошая идея, за исключением случаев, когда нажатие клавиши является нажатием на кнопку (которая setClickShortcut
метод позволяет определить).
Если вы хотите сделать что-то конкретное с нажатием клавиши, что-то отличное от того, что делают ваши кнопки, вы должны определить обработчик действия на вашем Window
или же Panel
, как рекомендует Ваадин.