【问题标题】:Vaadin: How To programmatically perform a KeyPressEvent on TAB-Button?Vaadin:如何以编程方式在 TAB 按钮上执行 KeyPressEvent?
【发布时间】:2016-03-21 13:10:22
【问题描述】:

有没有办法以编程方式执行按钮按下事件,即 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();

【问题讨论】:

    标签: java button vaadin shortcut


    【解决方案1】:

    如果您想要在按下 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

    【讨论】:

    • 这就是我想要的帽子,唯一的区别是 Tab 键是通过编程方式按下的......我是怎么做到的?
    • 设置标志或添加一些元信息到您的 prog TAG 按下/单击
    • @HakanKiyar 你能解释一下想要模拟tab键的原因吗? Button 可能不是对按键做出反应的正确控件,它们专注于对点击事件做出反应,但它们能够通过快捷键激活点击事件。
    • 我已经实现了一个 ShortcutListener 用于在按下 TAB 按钮时执行一些逻辑 - 现在我想为该逻辑编写一个 Junit-Test 我应该能够触发一个 TAB-Keypress-Event以编程方式
    • 如果 AbstractClientConnector.fireEvent(EventObject) 是可见的,这可能是要走的路,但事实并非如此。当你按下 Tab 键和点击它时,你的按钮有什么不同吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-29
    • 1970-01-01
    • 1970-01-01
    • 2012-01-23
    • 2021-03-11
    • 2014-10-16
    • 1970-01-01
    相关资源
    最近更新 更多