【问题标题】:Vaadin Click Shortcut expropriationVaadin 点击快捷方式征用
【发布时间】:2017-11-24 14:30:31
【问题描述】:

我在使用 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;
}

When selected tab is Tab1 Im getting expected output on Ctrl+Enter action, but when I select Tab2 - nothing happens.

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

【问题讨论】:

    标签: java spring vaadin vaadin8


    【解决方案1】:

    是的,查看框架代码,似乎每个窗口只能使用一次相同的快捷方式(如果没有窗口,则可以使用整个 UI)。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-12
      相关资源
      最近更新 更多