containerorderfocustraversalpolicy.java

来自「This is a resource based on j2me embedde」· Java 代码 · 共 377 行 · 第 1/2 页

JAVA
377
字号
                Component retval = getComponentBefore((Container) comp,                        aComponent, found);                if (retval != null) {                    return retval;                }            } else if (found.value) {                if (accept(comp)) {                    return comp;                }            }        }        if (found.value) {            if (accept(aContainer)) {                return aContainer;            }        } else if (aContainer == aComponent) {            found.value = true;        }        return null;    }    /**     * Returns the first Component in the traversal cycle. This method is used     * to determine the next Component to focus when traversal wraps in the     * forward direction.     *     * @param focusCycleRoot the focus cycle root whose first Component is to     *         be returned     * @return the first Component in the traversal cycle when focusCycleRoot     *         is the focus cycle root, or null if no suitable Component can be     *         found     * @throws IllegalArgumentException if focusCycleRoot is null     */    public Component getFirstComponent(Container focusCycleRoot) {        if (focusCycleRoot == null) {            throw new IllegalArgumentException("focusCycleRoot cannot be null");        }        synchronized (focusCycleRoot.getTreeLock()) {            if (!(focusCycleRoot.isVisible() && focusCycleRoot.isDisplayable())) {                return null;            }            if (accept(focusCycleRoot)) {                return focusCycleRoot;            }            for (int i = 0; i < focusCycleRoot.ncomponents; i++) {                Component comp = focusCycleRoot.component[i];                if (comp instanceof Container                        && !((Container) comp).isFocusCycleRoot()) {                    Component retval = getFirstComponent((Container) comp);                    if (retval != null) {                        return retval;                    }                } else if (accept(comp)) {                    return comp;                }            }        }        return null;    }    /**     * Returns the last Component in the traversal cycle. This method is used     * to determine the next Component to focus when traversal wraps in the     * reverse direction.     *     * @param focusCycleRoot the focus cycle root whose last Component is to be     *        returned     * @return the last Component in the traversal cycle when focusCycleRoot is     *         the focus cycle root, or null if no suitable Component can be     *         found     * @throws IllegalArgumentException if focusCycleRoot is null     */    public Component getLastComponent(Container focusCycleRoot) {        if (focusCycleRoot == null) {            throw new IllegalArgumentException("focusCycleRoot cannot be null");        }        synchronized (focusCycleRoot.getTreeLock()) {            if (!(focusCycleRoot.isVisible() && focusCycleRoot.isDisplayable())) {                return null;            }            for (int i = focusCycleRoot.ncomponents - 1; i >= 0; i--) {                Component comp = focusCycleRoot.component[i];                if (comp instanceof Container                        && !((Container) comp).isFocusCycleRoot()) {                    Component retval = getLastComponent((Container) comp);                    if (retval != null) {                        return retval;                    }                } else if (accept(comp)) {                    return comp;                }            }            if (accept(focusCycleRoot)) {                return focusCycleRoot;            }        }        return null;    }    /**     * Returns the default Component to focus. This Component will be the first     * to receive focus when traversing down into a new focus traversal cycle     * rooted at focusCycleRoot. The default implementation of this method     * returns the same Component as <code>getFirstComponent</code>.     *     * @param focusCycleRoot the focus cycle root whose default Component is to     *        be returned     * @return the default Component in the traversal cycle when focusCycleRoot     *         is the focus cycle root, or null if no suitable Component can be     *         found     * @see #getFirstComponent     * @throws IllegalArgumentException if focusCycleRoot is null     */    public Component getDefaultComponent(Container focusCycleRoot) {        return getFirstComponent(focusCycleRoot);    }    /**     * Sets whether this ContainerOrderFocusTraversalPolicy transfers focus     * down-cycle implicitly. If <code>true</code>, during normal forward focus     * traversal, the Component traversed after a focus cycle root will be the     * focus-cycle-root's default Component to focus. If <code>false</code>,     * the next Component in the focus traversal cycle rooted at the specified     * focus cycle root will be traversed instead. The default value for this     * property is <code>true</code>.     *     * @param implicitDownCycleTraversal whether this     *        ContainerOrderFocusTraversalPolicy transfers focus down-cycle     *        implicitly     * @see #getImplicitDownCycleTraversal     * @see #getFirstComponent     */    public void setImplicitDownCycleTraversal(boolean            implicitDownCycleTraversal) {        this.implicitDownCycleTraversal = implicitDownCycleTraversal;    }    /**     * Returns whether this ContainerOrderFocusTraversalPolicy transfers focus     * down-cycle implicitly. If <code>true</code>, during normal forward focus     * traversal, the Component traversed after a focus cycle root will be the     * focus-cycle-root's default Component to focus. If <code>false</code>,     * the next Component in the focus traversal cycle rooted at the specified     * focus cycle root will be traversed instead.     *     * @return whether this ContainerOrderFocusTraversalPolicy transfers focus     *         down-cycle implicitly     * @see #setImplicitDownCycleTraversal     * @see #getFirstComponent     */    public boolean getImplicitDownCycleTraversal() {        return implicitDownCycleTraversal;    }    /**     * Determines whether a Component is an acceptable choice as the new     * focus owner. By default, this method will accept a Component if and     * only if it is visible, displayable, enabled, and focusable.     *     * @param aComponent the Component whose fitness as a focus owner is to     *        be tested     * @return <code>true</code> if aComponent is visible, displayable,     *         enabled, and focusable; <code>false</code> otherwise     */    protected boolean accept(Component aComponent) {        if (!(aComponent.isVisible() && aComponent.isDisplayable()                && aComponent.isFocusable() && aComponent.isEnabled())) {            return false;        }        // Verify that the Component is recursively enabled. Disabling a        // heavyweight Container disables its children, whereas disabling        // a lightweight Container does not.        if (!(aComponent instanceof Window)) {            for (Container enableTest = aComponent.getParent();                    enableTest != null;                    enableTest = enableTest.getParent()) {                if (!(enableTest.isEnabled() || enableTest.isLightweight())) {                    return false;                }                if (enableTest instanceof Window) {                    break;                }            }        }        return true;    }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?