一个JavaFX MenuItem可以通过设置ActionEvent EventHandler响应大多数KeyPress事件。然而,虽然事件处理程序确实捕获了KeyCode.ENTER的KeyPress事件,但它没有捕获KeyCode.TAB的KeyPress事件。显然,一些按键事件如TAB在更深层次上被处理。例如,箭头键允许遍历菜单。
我的ContextMenu是一个列表,列出了用户在TextField中开始输入的电子邮件地址字符串的完成项。用户想要按箭头键选择所需的项目,并使用TAB键执行完成操作。
我可以将事件处理程序附加到ContextMenu本身并捕获TAB keypress。但是,事件的源是ContextMenu,我找不到ContextMenu中任何变量指示在按下TAB键时突出显示哪个MenuItem。MenuItem允许css样式控制菜单项焦点的外观,但它没有任何属性告诉它是否处于焦点状态。
我尝试通过MenuItem buildEventDispatchChain() futzing with the EventDispatchChain,但无济于事。似乎没有办法拦截TAB KeyPress或以其他方式确定在按下TAB键时哪个菜单项处于焦点状态。
有什么建议吗?
我的ContextMenu是一个列表,列出了用户在TextField中开始输入的电子邮件地址字符串的完成项。用户想要按箭头键选择所需的项目,并使用TAB键执行完成操作。
我可以将事件处理程序附加到ContextMenu本身并捕获TAB keypress。但是,事件的源是ContextMenu,我找不到ContextMenu中任何变量指示在按下TAB键时突出显示哪个MenuItem。MenuItem允许css样式控制菜单项焦点的外观,但它没有任何属性告诉它是否处于焦点状态。
我尝试通过MenuItem buildEventDispatchChain() futzing with the EventDispatchChain,但无济于事。似乎没有办法拦截TAB KeyPress或以其他方式确定在按下TAB键时哪个菜单项处于焦点状态。
有什么建议吗?