private boolean hasJavaAction(KeyEvent event) {

		KeyStroke keyStroke = KeyStroke.getKeyStrokeForEvent(event);
		Component focusOwner = focusProvider.getFocusOwner();
		if (focusOwner == null || !focusOwner.isEnabled() || !(focusOwner instanceof JComponent)) {
			return false;
		}

		JComponent jComponent = (JComponent) focusOwner;
		Action action = getJavaActionForComponent(jComponent, keyStroke);
		if (action == null) {
			return false;
		}

		/*
		 	Some Java actions use the accept() method for more fine-grained enablement checking. An
		 	example of this is the JTree 'cancel' action, bound to Escape, which will cancel any 
		 	current edits.  The tree UI is smart enough to say the action is only enabled if there
		 	is an active edit.   The accept() method may return false when isEnabled() will return 
		 	true.  So, check the accept() method first, since it may be more specific.
		 */
		boolean isEnabled = action.accept(focusOwner);
		if (!isEnabled) {
			return false;
		}

		return action.isEnabled();
	}
This method should only be called if a programmer adds a new precedence to
{@link KeyBindingPrecedence} and does not update the algorithm of
{@link #dispatchKeyEvent(KeyEvent)} to take into account the new precedence.
Ghidra/Framework/Docking/src/main/java/docking/KeyBindingOverrideKeyEventDispatcher.java