/** Find a focus-traverable component. * @param c the component to look in * @return the same component if traversable, else a child component if present, else <code>null</code> * @see Component#isFocusTraversable */ public static Component getFocusTraversableComponent(Component c) { if (c.isFocusable()) { return c; } if (!(c instanceof Container)) { return null; } int i; int k = ((Container) c).getComponentCount(); for (i = 0; i < k; i++) { Component v = ((Container) c).getComponent(i); if (v != null) { return v; } } return null; }
/** Find a focus-traverable component. * @param c the component to look in * @return the same component if traversable, else a child component if present, else <code>null</code> * @see Component#isFocusTraversable */ public static Component getFocusTraversableComponent(Component c) { if (c.isFocusable()) { return c; } if (!(c instanceof Container)) { return null; } int i; int k = ((Container) c).getComponentCount(); for (i = 0; i < k; i++) { Component v = ((Container) c).getComponent(i); if (v != null) { return v; } } return null; }
Component c = findComponentAt(e.getX(), e.getY()); if(c!=null){ ActionEvent ae = new ActionEvent(c,ActionEvent.ACTION_PERFORMED,""); ActionListener[] listeners = c.getListeners(ActionListener.class); for(ActionListener l:listeners){ l.actionPerformed(ae); } if(c.isFocusable()) setFocusedComponent(c); }
public static Component findFocusable(Component cmp) { // TODO: move to question.... if (cmp.isFocusable() && !(cmp instanceof JPanel) && !(cmp instanceof JLabel) && !(cmp instanceof JScrollPane) && !(cmp instanceof JViewport) && !(cmp instanceof JToolBar) ) return cmp; if (cmp instanceof Container) { Container container = (Container) cmp; for (int i = 0, size = container.getComponentCount(); i < size; i++) { Component finded = findFocusable(container.getComponent(i)); if (finded != null) return finded; } } return null; }
public void installUI(JComponent c) { super.installUI(c); if(!Theme.buttonEnter.getValue()) return; if(!c.isFocusable()) return; InputMap km = (InputMap)UIManager.get(getPropertyPrefix() + "focusInputMap"); if(km != null) { // replace SPACE with ENTER (but SPACE will still work, don't know why) km.put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0, false), "pressed"); km.put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0, true), "released"); } }
private static void addToAll(Component aStart, KeyListener aListener) { if (aStart.isFocusable()) { aStart.addKeyListener(aListener); } if (aStart instanceof Container) { Container container = (Container) aStart; for (Component comp : container.getComponents()) { addToAll(comp, aListener); } } }
public boolean condition(Component c) { return (c.isVisible() && c.isDisplayable() && c.isFocusable() && c.isEnabled()); } });
/** * Installs the icon for the UI * @see javax.swing.plaf.ComponentUI#installUI(JComponent) */ public void installUI(JComponent c) { super.installUI(c); icon = getRadioButton(); if(!Theme.buttonEnter.getValue()) return; if(!c.isFocusable()) return; InputMap km = (InputMap)UIManager.get(getPropertyPrefix() + "focusInputMap"); if(km != null) { km.put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0, false), "pressed"); km.put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0, true), "released"); } }
public void paletteDeactivated() { if (editorPanel_ != null) { final List v = BuLib.getAllSubComponents(editorPanel_); for (int i = v.size() - 1; i >= 0; i--) { final Component c = (Component) v.get(i); if (c.isFocusable()) { c.setFocusable(false); c.setFocusable(true); } } } }
/** * There are four standard tests which determine if Swing will be able to request focus for a component. Test them. * * @param comp * @return does the specified component pass the four focusability tests */ public static boolean passesFocusabilityTest(Component comp) { return ((comp != null) && comp.isEnabled() && comp.isDisplayable() && comp.isVisible() && comp.isFocusable() && comp.isShowing()); }
@RunsInEDT static boolean isFocusable(final @Nonnull Component component) { Boolean result = execute(() -> component.isFocusable()); return Preconditions.checkNotNull(result); }
/** * Installs some default values for the given button. * * @param button The reference of the button to install its default values. */ public void installDefaults(AbstractButton button) { super.installDefaults(button); icon = checkIcon; button.setRolloverEnabled(true); if(!Theme.buttonEnter.getValue()) return; if(!button.isFocusable()) return; InputMap km = (InputMap)UIManager.get(getPropertyPrefix() + "focusInputMap"); if(km != null) { km.put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0, false), "pressed"); km.put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0, true), "released"); } }
/** * Tells whether <code>component</code> can be focused or not. * @param component some {@link Component} which might gain the focus. * @return <code>true</code> if <code>component</code> is allowed to * gain the focus, <code>false</code> otherwise */ protected boolean accept( Component component ){ return component.isFocusable() && component.isEnabled() && component.isDisplayable() && component.isShowing(); }
/** * Tells whether <code>component</code> can be focused or not. * @param component some {@link Component} which might gain the focus. * @return <code>true</code> if <code>component</code> is allowed to * gain the focus, <code>false</code> otherwise */ protected boolean accept( Component component ){ return component.isFocusable() && component.isEnabled() && component.isDisplayable() && component.isShowing(); }
private boolean requestFocusForVisibleComponent() { Component visibleComponent = getVisibleComponent(); if (visibleComponent != null && visibleComponent.isFocusable()) { compositeRequestFocus(visibleComponent); return true; } else if (visibleComponent instanceof JComponent) { if (((JComponent) visibleComponent).requestDefaultFocus()) { return true; } } return false; }
@Override protected void processComponentKeyEvent(KeyEvent e) { Component editorComponent = getEditorComponent(); if (editorComponent != null && editorComponent.isFocusable()) { // The event should go to the editor component editorComponent.requestFocusInWindow(); Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(e); } else { super.processComponentKeyEvent(e); } }
public Component getFocusComponent( FocusStrategyRequest request ){ Component mouseClicked = request.getMouseClicked(); Dockable dockable = request.getDockable(); if( mouseClicked != null ){ if( (mouseClicked.isFocusable() && !excluded( mouseClicked, request )) || focusable( mouseClicked, request )){ return mouseClicked; } } Tracker tracker = trackers.get( dockable.getComponent() ); if( tracker == null ){ return null; } return tracker.getLastFocused(); }
public Component getFocusComponent( FocusStrategyRequest request ){ Component mouseClicked = request.getMouseClicked(); Dockable dockable = request.getDockable(); if( mouseClicked != null ){ if( (mouseClicked.isFocusable() && !excluded( mouseClicked, request )) || focusable( mouseClicked, request )){ return mouseClicked; } } Tracker tracker = trackers.get( dockable.getComponent() ); if( tracker == null ){ return null; } return tracker.getLastFocused(); }
public Component getFocusComponent( FocusStrategyRequest request ){ Component mouseClicked = request.getMouseClicked(); Dockable dockable = request.getDockable(); if( mouseClicked != null ){ if( (mouseClicked.isFocusable() && !excluded( mouseClicked, request )) || focusable( mouseClicked, request )){ return mouseClicked; } } if( dockable instanceof CommonDockable ){ Component result = ((CommonDockable)dockable).getDockable().getFocusComponent(); if( result != null ){ return result; } } return super.getFocusComponent( request ); } });
public FocusRequest grant( Component component ){ if( component.isFocusable() ){ component.requestFocus(); component.requestFocusInWindow(); return new RepeatingFocusRequest( dockable, component, isHardRequest() ); } else if( mouseClicked == null || mouseClicked == dockable.getComponent() ){ KeyboardFocusManager.getCurrentKeyboardFocusManager().focusNextComponent( component ); } else{ mouseClicked.requestFocus(); mouseClicked.requestFocusInWindow(); return new RepeatingFocusRequest( dockable, mouseClicked, isHardRequest() ); } return null; } }