Vaadin:如何以编程方式在 TAB 按钮上执行 KeyPressEvent?

Vaadin: How To programmatically perform a KeyPressEvent on TAB-Button?

有没有办法以编程方式执行按钮按下事件,即 Vaadin 中的 TAB-Button?我必须为 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();

如果你想要在按下tab键时触发点击事件,你可以这样做:

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 方法允许你定义)。


如果你想在按键上做一些特定的事情,一些与你的按钮不同的事情,你应该在你的 WindowPanel 上定义一个动作处理程序,如 Vaadin recommends.