有没有办法以编程方式执行按钮按下事件,即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();
答案 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
方法允许您定义)。
如果你想在按键上做一些特定的事情,这与你的按钮不同,你应该在setClickShortcut
或Window
上定义一个动作处理程序,如Vaadin recommends