我已经找到了解决该问题的回旋解决方案:
EventFilter在TabPane上添加一个-即使在编辑控件具有焦点时也会触发:
tabPane.addEventFilter(KeyEvent.KEY_PRESSED, this::keyPressed);
使用它作为
keyPressed函数:
private void keyPressed(KeyEvent event) { for (MenuItem mi : tabPane.getContextMenu().getItems()) { if (mi.getAccelerator()!=null && mi.getAccelerator().match(event)) { mi.getonAction().handle(null); event.consume(); return; } }}消耗事件很重要,因此,如果未选择任何编辑控件,则不会触发两次。如果您有嵌套菜单,这显然将不起作用,但是在我的情况下,它是一个平面上下文菜单。
如果此解决方案有任何可怕的错误,或者解决此问题的更直接的方法-请让我知道!
编辑 :可能需要增加
!mi.isDisable()触发条件,以避免禁用菜单项的触发事件。



