vaadin单击快捷方式征用



我正面临vaadin 8的clickshortcut问题。请查看我的简单示例代码:

private Component shortcutTest()
{
    TabSheet tabSheet = new TabSheet();
    tabSheet.addTab( createButton( "button1", 
                                  ShortcutAction.KeyCode.ENTER, 
                                  ShortcutAction.ModifierKey.CTRL ),
                                  "Tab1" );
    tabSheet.addTab( createButton( "button2", 
                                  ShortcutAction.KeyCode.ENTER, 
                                  ShortcutAction.ModifierKey.CTRL ), 
                                  "Tab2" );
    return tabSheet;
}
private Component createButton(String name, int keyCode, int modifier)
{
    Button button = new Button( name );
    button.setClickShortcut( keyCode, modifier );
    button.addClickListener( event -> System.out.println( event.getButton().getCaption() + " - click!" ) );
    return button;
}

当选择选项卡为 TAB1 IM在 ctrl Enter 操作上获得预期输出,但是当我选择 TAB2 - 什么都没发生。

我该如何处理?我想在不同的选项卡中使用相同的快捷方式,但似乎我只能有一个快捷方式组合的按钮。

是的

一个解决方法可以是在选定选项卡更改时动态设置和清除快捷方式,例如

tabSheet.addSelectedTabChangeListener(
        (TabSheet.SelectedTabChangeListener) event -> {
            if (tabsheet.getSelectedTab().equals(tab1)) {
                button2.removeClickShortcut();
                button1.setClickShortcut(keyCode, modifier);
            } else {
                button1.removeClickShortcut();
                button2.setClickShortcut(keyCode, modifier);
            }
        });

最新更新