如何浏览Vaadin网格并使用键盘选择项目?

时间:2017-11-15 08:16:14

标签: java grid vaadin treegrid vaadin8

我想知道是否可以浏览Vaadin网格或treegrid并仅使用键盘箭头键选择项目?从我在测试组件时看到的情况来看,默认行为似乎是仅移动到网格中的一个特定单元格或移动到treegrid中的特定行。如果用户按空格键,则可以实现选择。 我试图将一个shortcutListener添加到网格,但它似乎不适用于箭头键。并且网格滚动条不会随所选项目一起移动。

grid.addShortcutListener(new ShortcutListener("Down", KeyCode.ARROW_DOWN, null) {
    @Override
    public void handleAction(Object sender, Object target) {
        //..//
        selectedItem = dataSource.get(currentSelectedItemIndex);
        grid.select(selectedItem);
        grid.scrollTo(currentSelectedItemIndex); // this doesn't seem to do anything??
        //..//
    }
});

我想我的问题是我不知道如何获取将选择移动到其他单元格/行的事件。 这是一张代表我所面临问题的图像。使用箭头键选择仅具有蓝色边框的项目。当用户在没有空格键的情况下按箭头键(向下或向上)时,我想自动选择一个项目。 从这里拍摄的图像:https://demo.vaadin.com/sampler/#ui/grids-and-trees/grid/features

image

EDIT1: 我正在使用最新版本的Vaadin - 8.1.6 EDIT2: 我尝试添加几个听众,看看我是否至少可以通过使用向上/向下箭头将运动注册到下一个/上一个单元格,但没有任何运气。 这是我尝试过的听众列表:

  • addSelectionListener - 仅在空格键按下后注册选择 或鼠标点击。不是我想要的。
  • addItemClickListener - 仅从鼠标单击中注册选择。
  • addShortcutListener - 注册按下的键,但它不适用于箭头。

是否有任何听众可以帮助我解决这个问题?

1 个答案:

答案 0 :(得分:1)

Grid组件具有基本的键盘导航功能。如果你需要高级选项,就像你提到的那样,对于键盘导航,我会热烈建议测试这个附加组件:

https://vaadin.com/directory/component/gridfastnavigation-add-on