我们在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方法)。
因此,请尝试使用面板包装每个表(如果您不需要多余的边框,请使用“浅色”样式),看看是否有帮助。
否则,我认为您每次更改选项卡时都需要添加/删除各个表的快捷方式处理程序。