我们在Vaadin中实现了一个选项卡视图,其中每个选项卡都具有扩展Table类的实例。

在我们的表中,我们添加了一个侦听ENTER键的快捷方式侦听器。按下Enter键后,表格将变为可编辑状态或不可编辑状态。

我们的问题是这样的:如果我们使Table(1)可编辑并切换选项卡,则旧选项卡中的Table(1)仍然控制ENTER事件,因此我们无法在Table(2)中执行新的ENTER-keypress事件),并使Table(2)可编辑。

有什么方法可以将某种事件绑定到表上,例如:

 If Table.focus() is false then
     release event.ENTER


或者,如果还有其他方法,例如Table.OnFocus(),则可以控制。

最佳答案

我认为问题在于快捷方式侦听器附加到表的父窗口/面板,而不是表本身(处理快捷方式操作的Vaadin方法)。

因此,请尝试使用面板包装每个表(如果您不需要多余的边框,请使用“浅色”样式),看看是否有帮助。

否则,我认为您每次更改选项卡时都需要添加/删除各个表的快捷方式处理程序。

10-04 12:24
查看更多