Ваадин: Как программно выполнить 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, как рекомендует Ваадин.

Другие вопросы по тегам