public void actionPerformed(ActionEvent e) { int selIndexBefore = getSelectedIndex(); myDefaultAction.actionPerformed(e); int selIndexCurrent = getSelectedIndex(); if (selIndexBefore != selIndexCurrent) { return; } if (myFocusNext && selIndexCurrent == 0) { return; } KeyboardFocusManager kfm = KeyboardFocusManager.getCurrentKeyboardFocusManager(); Container container = kfm.getCurrentFocusCycleRoot(); FocusTraversalPolicy policy = container.getFocusTraversalPolicy(); if (policy == null) { policy = kfm.getDefaultFocusTraversalPolicy(); } Component next = myFocusNext ? policy.getComponentAfter(container, PaletteItemsComponent.this) : policy.getComponentBefore(container, PaletteItemsComponent.this); if (next instanceof PaletteGroupComponent) { clearSelection(); next.requestFocus(); ((PaletteGroupComponent) next).scrollRectToVisible(next.getBounds()); } }
public void actionPerformed(ActionEvent e) { KeyboardFocusManager kfm = KeyboardFocusManager.getCurrentKeyboardFocusManager(); Container container = kfm.getCurrentFocusCycleRoot(); FocusTraversalPolicy policy = container.getFocusTraversalPolicy(); if (null == policy) policy = kfm.getDefaultFocusTraversalPolicy(); Component next = moveDown ? policy.getComponentAfter(container, PaletteGroupHeader.this) : policy.getComponentBefore(container, PaletteGroupHeader.this); if (null != next && next instanceof PaletteComponentList) { final PaletteComponentList list = (PaletteComponentList) next; if (list.getModel().getSize() != 0) { list.takeFocusFrom(PaletteGroupHeader.this, list == myComponentList ? 0 : -1); return; } else { next = moveDown ? policy.getComponentAfter(container, next) : policy.getComponentBefore(container, next); } } if (null != next && next instanceof PaletteGroupHeader) { next.requestFocus(); } }
/** * Requests focus for a component. If that's not possible it's {@link FocusTraversalPolicy}is * checked. If that doesn't work all it's children is recursively checked with this method. * * @param component the component to request focus for * @return the component which has focus or probably will obtain focus, null if no component will * receive focus */ public static Component smartRequestFocus(Component component) { Component componentTemp = component; if (requestFocus(componentTemp)) return componentTemp; if (componentTemp instanceof JComponent) { FocusTraversalPolicy policy = ((JComponent) componentTemp).getFocusTraversalPolicy(); if (policy != null) { Component focusComponent = policy.getDefaultComponent((Container) componentTemp); if (focusComponent != null && requestFocus(focusComponent)) { return focusComponent; } } } if (componentTemp instanceof Container) { Component[] children = ((Container) componentTemp).getComponents(); for (int i = 0; i < children.length; i++) { componentTemp = smartRequestFocus(children[i]); if (componentTemp != null) return componentTemp; } } return null; }
protected void focusNext(JComponent comp) { FocusTraversalPolicy policy = FlatWelcomeFrame.this.getFocusTraversalPolicy(); if (policy != null) { Component next = policy.getComponentAfter(FlatWelcomeFrame.this, comp); if (next != null) { next.requestFocus(); } } }
protected void focusPrev(JComponent comp) { FocusTraversalPolicy policy = FlatWelcomeFrame.this.getFocusTraversalPolicy(); if (policy != null) { Component prev = policy.getComponentBefore(FlatWelcomeFrame.this, comp); if (prev != null) { prev.requestFocus(); } } }
public Component getComponentBefore(Container cont, Component comp) { if (comp == tabbedPane) { String tabTitle = tabbedPane.getTitleAt(tabbedPane.getSelectedIndex()); Component prev = tabBefore.get(tabTitle); if (prev != null) return prev; } Component prev = before.get(comp); if (prev != null) return prev; return defaultPolicy.getComponentBefore(cont, comp); }
public Component getFirstComponent(Container root) { return defaultPolicy.getFirstComponent(root); }
public Component getComponentAfter(Container cont, Component comp) { Component next = after.get(comp); if (next != null) return next; return defaultPolicy.getComponentAfter(cont, comp); }