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 + -
显示快捷键?