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

时间:2016-03-21 13:10:23

标签: java button vaadin shortcut

有没有办法以编程方式执行按钮按下事件,即Vaadin中的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 个答案:

答案 0 :(得分:1)

如果你想要的是在按Tab键时触发click事件,你可以执行以下操作:

 @Override
    protected void onDraw(Canvas canvas) {
        TextPaint paint = this.getPaint();
        paint.setColor(Color.RED);
        paint.setStrokeWidth(1);
        paint.setStyle(Paint.Style.FILL_AND_STROKE);

        RectF rectF = new RectF(0, 0, this.getWidth(), this.getHeight());
        Path path = new Path();
        path.addArc(rectF, -180, 180);
        canvas.drawPath(path, paint);
}

使用Vaadin 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(); 在按键上执行有用的操作可能不是一个好主意,除非按键是点击按钮的快捷方式(Button方法允许您定义)。

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