@Override
  public JComponent getPreferredFocusableComponent() {
    if (myFocusRequest != null) {
      return myFocusRequest.compute();
    }
    if (myComponent == null) {
      return null;
    }

    Container traversalRoot = myComponent.isFocusCycleRoot() ? myComponent : myComponent.getFocusCycleRootAncestor();
    if (traversalRoot == null) {
      return null;
    }

    Component component = traversalRoot.getFocusTraversalPolicy().getDefaultComponent(myComponent);
    return component instanceof JComponent ? (JComponent)component : null;
  }
@Override
  public JComponent getPreferredFocusableComponent()